什么时候应该使用 Relay GraphQL 连接,什么时候应该使用普通列表?

When should I use a Relay GraphQL connection and when a plain list?

在 Relay GraphQL 中,连接和列表都是类似数组的,但它们有不同的特性。我应该什么时候使用它们?

Connections

  • 比简单的列表更强大、更灵活。
  • 支持分页(向前和向后),带游标。
  • 细粒度 mutation support (eg. RANGE_ADD, RANGE_DELETE, NODE_DELETE, as described in the guide).
  • 需要 firstlast 参数以限制结果集的大小。
  • 有一个 edges 字段,它提供了一个位置来定位每条边、特定于边的数据。
  • 一个较重的概念,需要更多的工作来在模式中定义。

列表

使用哪个?

  • 只要你需要分页,就应该使用连接。
  • 如果您需要对突变进行细粒度控制,您可以选择使用连接,即使您不需要分页。
  • 如果您想要一个连接中的所有项目,您可以使用 first 一些大的数字。
  • 如果您想以最小的努力公开一个简短列表,请使用简单列表。