レイアウト サービスによって返されるコンテキスト データの拡張

Version: 20.x
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

要求されたアイテムの名前、フィールド、プレースホルダー / レンダリングを返すことに加えて、レイアウト サービスの出力には context プロパティも含まれます。このプロパティを使用して、多くのコンポーネント / ページで必要なユーザーのログイン状態などのデータや、現在のサイトのコンテキストやページ モードなどの HTTP コンテキストから取得できる他の情報を提供することができます。またこのプロパティは、ヘッダーやフッターのナビゲーションなど、プレースホルダーや Sitecore レイアウトで管理されない静的にページに配置されたコンポーネント用のデータの提供にも役立ちます。

getLayoutServiceContext パイプラインを使用すると、特定のレイアウト サービス設定や JSS アプリで返されるコンテキスト データを追加できます。コンテキスト データは、レイアウト サービスの出力の context オブジェクトの下に表示されます。

既定で、JSS は次のプロパティを context オブジェクトに含めます。

  • pageEditing - ルートがエクスペリエンス エディターでアクセスされるかどうかを示すブール値。これは、レイアウト サービスによって提供されます。

  • pageState - pageEditing と似ていますが、normalpreview、または edit の値を持つ文字列です。

  • site - 現在の Sitecore サイトのコンテキストの name を含むオブジェクト。これは、レイアウト サービスによって提供されます。

標準のプロパティは有効または無効にすることができます。また、レイアウト サービスによって提供される getLayoutServiceContext パイプラインを拡張することでcontext オブジェクトに独自のデータを追加することができます。

コンテキスト拡張のパフォーマンスに関する考慮事項

カスタム コンテキスト拡張機能を作成する際は、パフォーマンスを考慮する必要があります。これは、カスタム コンテキスト拡張機能はJSON レンダリングと同じキャッシュ オプションを持たないためです。作成したカスタム拡張機能の動作が遅い場合や多数の API 呼び出しやアイテムの読み込みを行う場合、拡張機能が有効になっているすべてのページでパフォーマンスが低下します。

ヘッダーとフッターのコンテンツなど、複数ページ間でコンテンツを共有する場合は、GraphQL を使用してクライアントサイドでデータをキャッシュするか、配信アプリケーションで、コンテキスト拡張用に独自のデータ キャッシュとエビクション ポリシーを実装することを検討します。

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、