web-dev-qa-db-ja.com

リレーGraphQL接続を使用する必要があるのはいつですか?

Relay GraphQLでは、接続とリストはどちらも配列に似ていますが、機能が異なります。それぞれをいつ使用すればよいですか?

49
wincent

接続

  • 単純なリストよりも強力で柔軟性があります。
  • カーソルを使用したページ付け(前方および後方)をサポートします。
  • きめの細かい mutation サポート(例RANGE_ADDRANGE_DELETENODE_DELETEガイド で説明)。
  • 結果セットのサイズを制限するには、firstまたはlast引数が必要です。
  • エッジごと、エッジ固有のデータを検索する場所を提供するedgesフィールドがあります。
  • スキーマで定義するためにより多くの作業を必要とする、より重い概念。

リスト

  • シンプルで軽量。
  • ページネーションはサポートされていません(リスト全体が常に返されます)。
  • 先頭、追加などの特別な変更機能はありません( これは要求された機能ですが )。

どちらを使用しますか?

  • ページネーションが必要な場合は、常に接続を使用する必要があります。
  • ミューテーションをきめ細かく制御する必要がある場合は、ページネーションが必要ない場合でも、接続を使用することを選択できます。
  • 接続内のすべてのアイテムが必要な場合は、いくつかの大きな数でfirstを使用できます。
  • 最小限の労力で短いリストを公開したい場合は、単純なリストを使用してください。
58
wincent