中继 graphql 片段有什么好处?

What is benefit of relay graphql fragment?

我有几个月使用 relay graphql 的经验。我从另一个即将离开的开发人员那里继续这个项目,我在每个页面上使用一个 QueryRenderer 并将从主查询中获取的数据作为普通对象作为每个子组件的道具,我在这里没有看到任何问题。但我看到人们正在大量使用片段并建议使用片段。我认为这只是更多的打字和真正的浪费。我不太明白,我们可以把数据作为 prop 给每个子组件,那么为什么人们真的需要一个片段呢?有没有我想念的技术优势?

它可以帮助您维护代码。

如果您的页面包含 3 个不同的组件,并且每个组件都需要不同的数据,那么您可以在组件内的片段中为每个组件指定所需的数据。如果您以后想要摆脱 3 个组件之一,您只需从 QueryRenderer 中删除该组件的片段,而不是检查您可以从 QueryRenderer 中删除哪些参数。

通过在组件中指定所需的数据,可以更轻松地确保只获取正确且必要的数据。如果 3 个不同的开发人员编写组件(每个开发人员一个),则很容易为页面编写 QueryRenderer。因为无需检查每个组件所需的数据并将各个参数传递给组件,您只需在 QueryRenderer 中指定 3 个片段即可。