ReactアプリケーションにおけるSitecoreフィールドのレンダリング用JSSコンポーネント
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
JSS for Reactは、Reactアプリケーション内でSitecoreフィールドをレンダリングするのに役立つコンポーネントを提供します。
以下の表は、SitecoreフィールドタイプとJSS Reactコンポーネント間の対応を示しています。
Sitecoreフィールドタイプ
JSS Reactコンポーネント
日付
Date
ファイル
File
画像
Image
一般リンク
Link
単行テキスト、多行テキスト、または数値タイプ
Text
リッチテキスト
RichText
以下は、サポートされているコンポーネントの一覧と、それらの使用例です。例では、フィールドデータはPlaceholderコンポーネントによって提供されています。
日付
Dateコンポーネントは、JSSアプリケーション内の日付と時間のコンテンツフィールドのレンダリングを支援します。
Date成分は以下の性質を持ちます:
名称
概要
デフォルト
field
必須。
レンダリングしたいフィールド。Sitecore Date型でなければなりません。
-
tag
日付値をラップするHTML要素の名前。
span
editable
インライン編集を明示的に有効化または無効化してください。 true と field.editable に値がある場合、 field.editable は処理されコンポーネント出力としてレンダリングされます。 falseの場合、 field.editable 値は無視されレンダリングされません。
true
render
フィールド値を解析されたJavaScript Dateオブジェクトとして受け取り、コンポーネントのラッピング tag でレンダリングする値を返す関数です。日付および日付時間のローカリゼーションのフォーマットに使用できます。
-
使用例
フィールドを使うには、コンポーネントにインポートする必要があります:
import { DateField } from '@sitecore-jss/sitecore-jss-react';
コンポーネントの使い方は以下の通りです:
-
簡単な日付フィールドをレンダリングするには:
-
datetimeフィールドをレンダリングするには:
-
日付をUTC形式の文字列としてレンダリングするには:
<DateField field={props.fields.date} render={(date) => date.toUTCString()} />
!注編集モードではrenderプロパティは無視されます。
このコンポーネントはフォーマット設定のためにJS Dateオブジェクトへの直接アクセスを提供します。したがって、以下のようにローカライズされた日付および日付時間文字列をレンダリングするために使用できます。
<DateField field={props.fields.date} render={(date) => date.toLocaleDateString()} /> <DateField field={props.fields.dateTime} render={(date) => {date.toLocaleString()}} />
ファイル
Fileコンポーネントはファイルリンクをレンダリングします。
File成分は以下の性質を持ちます:
名称
概要
value
必須。
レンダリングしたいルートフィールドです。これは、 src、 title、 displayNameのプロパティを持つSitecoreファイルタイプを表しています。
children
レンダリングされた タグを埋め込むReactノードです。デフォルト値はファイルです。
!重要ファイルフィールドはエクスペリエンスエディターでのインライン編集をサポートしていません。しかし、コンポーネントのデフォルトフィールドエディターを使って編集することは可能です。
フィールドを使うには、コンポーネントにインポートする必要があります:
Imageコンポーネントは編集可能でレスポンシブな画像をレンダリングすることを可能にします。
画像フィールドデータ。 ImageFieldValue または ImageField オブジェクトタイプを受け入れます。
画像URLに追加されたクエリ文字列パラメータに変換するImageSizeParametersの配列です。
srcSet
ネイティブ画像のsrcset属性の値として使われる、カンマ区切り文字列を生成するためのImageSizeParameters定義の配列です。
mediaUrlPrefix
メディアURLの接頭辞を /-/jssmedia または /~/jssmediaに置き換えるカスタム正規表現です。
!重要imageParamsやsrcSetプロパティを使用する際は、セキュリティ上の理由から画像パラメータを サーバー上でホワイトリスト化 しなければなりません。
コンポーネントに追加のプロパティを渡すことができます。例えば、ネイティブ画像sizes属性の値を指定して、サーバー側のレスポンシブなレンダリング画像を有効にすることができます。
使用例
Imageコンポーネントを使用するには、それを自分のコンポーネントにインポートする必要があります:
import { Image } from '@sitecore-jss/sitecore-jss-react';
Imageコンポーネントを使ってレンダリングできます:
-
シンプルな画像:
-
レスポンシブ画像:
<Image field={props.fields.sample2} srcSet={{ mw: 300 }, { mw: 100 }} sizes="(min-width: 960px) 300px, 100px" className="img-fluid" />
-
高度な設定が可能な画像。例えば、以下のサンプルは、Experience EditorのようなSitecoreコンテンツおよびレイアウトエディタでは編集できない画像をレンダリングしています。画像はimageParamsプロパティに基づいてサーバー側でリサイズされます:
<Image field={props.fields.sample2} editable={false} imageParams={{ mw: 100, mh: 50 }} height="50" width="94" data-sample="other-attributes-pass-through" />
リンク
Linkコンポーネントは、General Link Sitecoreフィールドタイプの内容をレンダリングするのに役立ちます。
Link成分は以下の性質を持ちます:
名称
概要
デフォルト
field
レンダリングしたいルートフィールド。それはSitecoreのGeneral Linkタイプでなければなりません。
-
editable
エディターを使うかSitecore形式のHTML出力を使うかを示します。
> [!注]
> Sitecoreからの編集可能な出力を使用する場合、LinkはSitecore提供されたマークアップの周りにラッパースパンを作成し、そのスパンにホスト要素の属性を適用します。
true
showLinkTextWithChildrenPresent
子が存在してもリンク記述の表示を有効または無効にするブール式です。
> [!注]
> この設定は技術的な制約により、Sitecoreエクスペリエンスエディターでは無視され、説明は常にレンダリングされます。
使用例
Linkフィールドヘルパーコンポーネントを使用するには、それをコンポーネントにインポートする必要があります:
import { Link } from '@sitecore-jss/sitecore-jss-react';
Linkコンポーネントを使ってレンダリングできます:
-
外部リンク:
-
HTMLやその他のコンポーネントを含む内部リンク:
HTML or other components can be used within link renderers, for example, links to images. -
メールリンク:
-
コンテンツパラメータのリンク:
リンクコンポーネントは追加のプロパティや属性を受け入れます。例えば:
## 本文Textコンポーネントは、単行テキスト、複数行テキスト、または数値フィールドSitecoreレンダリングするのに役立ちます。
Text成分は以下の性質を持ちます:
名称
概要
デフォルト
field
レンダリングしたいフィールド。
-
tag
テキスト値をラップしたいHTML要素の名前です。
span
editable
エディターを使うかSitecore形式のHTML出力を使うかを示します。
true
encode
出力値のエンコーディングHTML有効または無効化します。偽値はまた editable: falseを意味します。
true
マルチラインテキストの場合、提供された編集可能な値の中で、行区切りは
に置き換えられます。編集不可の値を使用する場合、field.value処理してJSONの換行を望むマークアップに置き換えるか、プリラップのようなCSSの空白設定値を利用できます。
使用例
Textコンポーネントを使用するには、それを自分のコンポーネントにインポートする必要があります:
import { Text } from '@sitecore-jss/sitecore-jss-react';
レンダリングは以下の通りです:
-
デフォルトオプションがあるテキストフィールド:
-
カスタムタグ、CSSクラス、カスタム属性を持つ編集不可のテキストフィールド:
Sitecoreテキストフィールドの生値をレンダリングしたい場合は、インポート文にgetFieldValue関数を追加してください。その後、アプリケーション内で生の値を確認できます。例えば:
RichTextコンポーネントはリッチテキストフィールドSitecoreレンダリングするのに役立ちます。
RichText成分は以下の性質を持ちます:
名称
概要
デフォルト
field
レンダリングしたいフィールド。
-
tag
テキスト値をラップしたいHTML要素の名前です。
div
editable
エディターを使うかSitecore形式のHTML出力を使うかを示します。
true
使用例
RichTextコンポーネントを使用するには、それを自分のコンポーネントにインポートする必要があります:
import { RichText } from '@sitecore-jss/sitecore-jss-react';
レンダリングは以下の通りです:
-
デフォルトのオプションがあるフィールド:
-
カスタムタグ、CSSクラス、カスタム属性を持つ編集不可のリッチテキストフィールド: