JSSコードファースト開発でフィールドを持つルートタイプを作成する

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

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

デフォルトでは、JSSアプリに読み込まれたすべてのフィールドは、Sitecore data sources.これらは、ルート アイテムのレイアウトで参照されるデータ アイテムです。ルート アイテム自体には、デフォルトでは独自のフィールドは含まれていません。

項目にフィールドを追加するには、data templateで行う必要があります。

JSSでは、カスタムルートタイプのフィールドを定義できます。カスタム ルート タイプは、新しいデータ テンプレートとしてSitecoreにインポートされます。

先端

コード ファースト開発ワークフローを使用していない場合は、Sitecoreで作成されたルート データ テンプレートのフィールドを使用できます。

ルート上にフィールドを直接追加する状況には、次のようなものがあります。

  • Placeholderコンポーネントに配置されたコンポーネントの外側のフィールド (ヘッダーメタデータや他の静的に配置されたコンポーネントのデータなど) を使用している。

  • 1つのコンポーネントだけでなく、ルート内の複数のコンポーネントで使用するコンテンツまたはデータがあります。

  • ルート テンプレートのstandard valuesにデフォルト レイアウトを追加しています (現在、これはSitecore自体で行う必要があります)。

  • 高度なデータ モデリング シナリオ。

メモ

JSSインポート プロセスでは、常にアプリごとにルート テンプレートが生成されます。このテンプレートは既定のルート テンプレートですが、アプリ マニフェストで定義されているルートの種類の基本テンプレートとしても自動的に設定されます。

ルート上に直接フィールドを持つルートタイプを作成し、それをルートに使用するには:

  1. ルートを定義/追加するマニフェストジェネレーターファイル( sitecore/definitions/routes.sitecore.jsなど)で、addRouteType関数を使用して、namefieldsを持つルートタイプを追加します。

    RequestResponse
    manifest.addRouteType({
    name: 'MyRoute',
    fields: [
        { name: 'metaTitle', displayName: 'Meta Title', type: manifest.fieldTypes.singleLineText },
        { name: 'titleText', displayName: 'Body Title', type: manifest.fieldTypes.singleLineText },
        { name: 'body', displayName: 'Body Text', type: manifest.fieldTypes.richText }
    ]
    });
    
    手記

    項目は、コンポーネントの場合と同じ方法で定義します。

  2. ルート データ ファイル (たとえば、data/routes/about/en.json) で、ルートのルート データをモックし、カスタム ルート タイプのname値を使用してtemplateプロパティを新しいカスタム ルート タイプに設定します。

    RequestResponse
    {
      "name": "route",
      "template": "MyRoute",
      "displayName": "Route",
      "fields": {
        "metaTitle": "My Route",
        "titleText": "My Route",
        "body": "Lorem ipsum dolor sit"
      },
      "placeholders": {
          // ...
      }
    
  3. ファイルからルート データを取得する場合、特にすべてのルートが同じタイプを使用している場合は、新しいルート タイプを任意のルートに動的に適用できます。選択したフレームワークでこれを行う方法の例は、ファイルsitecore/definitions/routes.sitecore.js|tsで調べることができます。

次回Sitecoreでアプリケーションをインポートすると、インポート プロセスによって新しいルート タイプのdata templateが作成され、新しく作成されたルートはデータ テンプレートを使用します。

大事な

Data template既存のルートのテンプレートは、インポート プロセス中に変更されません。手動で削除するか、Sitecoreでテンプレートを変更するか、開発中にフル ワイプ モードを使用する必要があります。

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

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