【问题标题】:What is benefit of relay graphql fragment?中继 graphql 片段有什么好处?
【发布时间】:2021-02-01 18:21:30
【问题描述】:
我有几个月使用中继 graphql 的经验。我从另一个即将离开的开发人员那里继续该项目,我在每个页面上使用一个 QueryRenderer 并将从主查询中获取的数据作为一个普通对象作为每个子组件的道具倾倒,我认为这里没有问题。但我看到人们大量使用片段和建议片段。我认为这只是更多的打字和真正的浪费。我不太明白,我们可以将数据作为每个子组件的道具,那么为什么人们真的需要片段呢?有没有我错过的技术优势?
【问题讨论】:
标签:
reactjs
graphql
relayjs
relay
【解决方案1】:
它可以帮助您维护代码。
如果您有一个包含 3 个不同组件的页面,并且每个组件需要不同的数据,那么您可以在组件内的片段中为每个组件指定所需的数据。如果您以后想要摆脱这 3 个组件中的一个,您只需从 QueryRenderer 中删除该组件的片段,而不是检查您可以从 QueryRenderer 中删除哪些参数。
通过在组件中指定所需数据,可以更轻松地确保获取正确且仅必要的数据。如果 3 个不同的开发人员编写组件(每个开发人员一个),则很容易为页面编写 QueryRenderer。因为无需检查每个组件所需的数据并将各个参数传递给组件,您只需在 QueryRenderer 中指定 3 个片段,它就会起作用。