ReactアプリケーションにおけるSitecoreフィールドのレンダリング用JSSコンポーネント

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

このページの翻訳は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ノードです。デフォルト値はファイルです。

!重要ファイルフィールドはエクスペリエンスエディターでのインライン編集をサポートしていません。しかし、コンポーネントのデフォルトフィールドエディターを使って編集することは可能です。

フィールドを使うには、コンポーネントにインポートする必要があります:

import { File } from '@sitecore-jss/sitecore-jss-react';

コンポーネントの使い方は以下の通りです:

Imageコンポーネントは編集可能でレスポンシブな画像をレンダリングすることを可能にします。

Image成分は以下の性質を持ちます:

名称

概要

field

必須。

画像フィールドデータ。 ImageFieldValue または ImageField オブジェクトタイプを受け入れます。

editable

画像のインライン編集を有効または無効にできるブール値です。

デフォルト: true。

imageParams

画像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関数を追加してください。その後、アプリケーション内で生の値を確認できます。例えば:

Raw value (not editable): {getFieldValue(props.fields, 'sample')}
## リッチテキスト

RichTextコンポーネントはリッチテキストフィールドSitecoreレンダリングするのに役立ちます。

RichText成分は以下の性質を持ちます:

名称

概要

デフォルト

field

レンダリングしたいフィールド。

-

tag

テキスト値をラップしたいHTML要素の名前です。

div

editable

エディターを使うかSitecore形式のHTML出力を使うかを示します。

true

使用例

RichTextコンポーネントを使用するには、それを自分のコンポーネントにインポートする必要があります:

import { RichText } from '@sitecore-jss/sitecore-jss-react';

レンダリングは以下の通りです:

  • デフォルトのオプションがあるフィールド:

  • カスタムタグ、CSSクラス、カスタム属性を持つ編集不可のリッチテキストフィールド:

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