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の値が自動的に挿入されます。