查询和变更

你可以在本页学到有关如何查询 GraphQL 服务器的详细信息。

片段(Fragments)

假设我们的 app 有比较复杂的页面,将正反派主角及其友军分为两拨。你立马就能想到对应的查询会变得复杂,因为我们需要将一些字段重复至少两次 —— 两方各一次以作比较。

这就是为何 GraphQL 包含了称作片段的可复用单元。片段使你能够组织一组字段,然后在需要它们的的地方引入。下面例子展示了如何使用片段解决上述场景:

  1. # { "graphiql": true }
  2. {
  3. leftComparison: hero(episode: EMPIRE) {
  4. ...comparisonFields
  5. }
  6. rightComparison: hero(episode: JEDI) {
  7. ...comparisonFields
  8. }
  9. }
  10. fragment comparisonFields on Character {
  11. name
  12. appearsIn
  13. friends {
  14. name
  15. }
  16. }

你可以看到上面的查询如何漂亮地重复了字段。片段的概念经常用于将复杂的应用数据需求分割成小块,特别是你要将大量不同片段的 UI 组件组合成一个初始数据获取的时候。