レイアウト サービスによって返されるコンテキスト データの拡張
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
要求されたアイテムの名前、フィールド、プレースホルダー / レンダリングを返すことに加えて、レイアウト サービスの出力には context
プロパティも含まれます。このプロパティを使用して、多くのコンポーネント / ページで必要なユーザーのログイン状態などのデータや、現在のサイトのコンテキストやページ モードなどの HTTP コンテキストから取得できる他の情報を提供することができます。またこのプロパティは、ヘッダーやフッターのナビゲーションなど、プレースホルダーや Sitecore レイアウトで管理されない静的にページに配置されたコンポーネント用のデータの提供にも役立ちます。
getLayoutServiceContext
パイプラインを使用すると、特定のレイアウト サービス設定や JSS アプリで返されるコンテキスト データを追加できます。コンテキスト データは、レイアウト サービスの出力の context
オブジェクトの下に表示されます。
既定で、JSS は次のプロパティを context
オブジェクトに含めます。
-
pageEditing
- ルートがエクスペリエンス エディターでアクセスされるかどうかを示すブール値。これは、レイアウト サービスによって提供されます。 -
pageState
-pageEditing
と似ていますが、normal
、preview
、またはedit
の値を持つ文字列です。 -
site
- 現在の Sitecore サイトのコンテキストのname
を含むオブジェクト。これは、レイアウト サービスによって提供されます。
標準のプロパティは有効または無効にすることができます。また、レイアウト サービスによって提供される getLayoutServiceContext
パイプラインを拡張することで、context
オブジェクトに独自のデータを追加することができます。
コンテキスト拡張のパフォーマンスに関する考慮事項
カスタム コンテキスト拡張機能を作成する際は、パフォーマンスを考慮する必要があります。これは、カスタム コンテキスト拡張機能はJSON レンダリングと同じキャッシュ オプションを持たないためです。作成したカスタム拡張機能の動作が遅い場合や多数の API 呼び出しやアイテムの読み込みを行う場合、拡張機能が有効になっているすべてのページでパフォーマンスが低下します。
ヘッダーとフッターのコンテンツなど、複数ページ間でコンテンツを共有する場合は、GraphQL を使用してクライアントサイドでデータをキャッシュするか、配信アプリケーションで、コンテキスト拡張用に独自のデータ キャッシュとエビクション ポリシーを実装することを検討します。