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

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

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

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

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

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

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

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

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

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

Context Extensionのパフォーマンスに関する考慮事項

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

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

この記事を改善するための提案がある場合は、 お知らせください!