JSSアプリへのGraphQLの統合
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
統合されたGraphQLを使用すると、レイアウトサービスによって特定のコンポーネントに対して返されるレイアウトデータ形式をGraphQLクエリの結果に変更できます。つまり、フロントエンド コンポーネントを強化するために必要なデータを定義するGraphQLクエリを定義し、そのクエリからデータをプロパティ (Reactコンポーネントのprops.fieldsなど) として受け取ることができます。これにより、受信するデータを制御でき、子アイテムやCRMデータなどの高度なデータソースが必要な場合はGraphQLの機能を活用できます。
Sitecoreでは、GraphQLクエリはGraphQLフィールドComponent GraphQL Queryのレンダリングにアタッチされます。
次の場合は、統合されたGraphQLを使用することをお勧めします。
-
コンポーネントには、GraphQLスキーマのデータソーステンプレートフィールドよりも多くのデータが必要です。
-
データソーステンプレートには、レンダリングしない追加のフィールドが含まれています。
-
Apolloのようなクライアント側のGraphQLライブラリは必要ありません。統合されたGraphQLは、JSS以外の追加の依存関係を必要としません。
次の場合は、統合GraphQLの使用avoidことをお勧めします。
-
このコンポーネントは、コンテンツテンプレートフィールドデータのみを使用します。デフォルトのレイアウトデータ出力は、GraphQLを必要とせずに十分です。
-
GraphQLクエリのパフォーマンスが低下しています。たとえば、バックグラウンドで複数のREST API通話を集約します。統合されたGraphQLは、すべてのレイアウト クエリが完了するまでアプリのレンダリングをブロックします。Connected GraphQLを使用して、実行時間の長いクエリを初期レイアウトがレンダリングされるまで延期することをお勧めします。
-
コンポーネントは、状態の変化に応じて追加のGraphQLクエリを発行する必要があります。統合クエリは、レイアウト データが読み込まれたときにのみ実行されます。
-
コンポーネントは、ミューテーション (更新) またはサブスクリプション (リアルタイム データ) を実行する必要があります。統合GraphQLでは、クエリのみを実行できます。
統合GraphQLクエリを使用する場合、defaultおよびjssレイアウト サービス設定では、$datasource、 $contextItem、および$languageの値が自動的に挿入されます。