リストの表示

項目のリストを表示するには、for:each ディレクティブまたは iterator ディレクティブを使用して、配列を反復処理します。このディレクティブは、反復する HTML 要素を囲むネストされた <template> タグに追加します。

iterator ディレクティブの first プロパティと last プロパティを使用すると、配列内の最初と最後の項目に特別な動作を適用できます。

使用するディレクティブにかかわらず、各項目に一意の ID を割り当てるには、key ディレクティブを使用する必要があります。リストが変更されると、フレームワークは key を使用して、変更された項目のみを再表示します。key は、テンプレート内でパフォーマンスを最適化するために使用されます。実行時に DOM に反映されることはありません。

コードエディタで確認するには、github.com/trailheadapps/lwc-recipes リポジトリにある helloForEach および helloIterator コンポーネントを開きます。コンポーネント IDE にコードをコピーすることもできます。

for:each ディレクティブを使用する場合、現在の項目にアクセスするには、for:item="currentItem" を使用します。この例では使用していませんが、現在の項目のインデックスにアクセスするには、for:index="index" を使用します。

ネストされたテンプレートの最初の要素にキーを割り当てるには、key={uniqueId} ディレクティブを使用します。

次の例では、コンポーネントの JavaScript クラスで定義されている contacts という名前の配列が反復処理されています。

名前とタイトルのリスト。

リスト内のすべての項目には、key が必要です。リストが変更されると、フレームワークは、変更された項目のみを再表示できるようにするため、key を使用して各項目を識別します。key は、文字列または数字にする必要があります。オブジェクトにすることはできません。indexkey の値として使用することはできません。受信データセットには、一意のキーを割り当ててください。データセットに新しい項目を追加するには、キーを追跡および生成する非公開のプロパティを使用してください。

リスト内の最初または最後の項目に特別な動作を適用するには、iterator:iteratorName={array} という形式の iterator ディレクティブを使用します。この iterator ディレクティブは、template タグ上で使用します。

iteratorName を使用すると、次のプロパティにアクセスできます。

  • value — リスト内の項目の値。このプロパティは、配列のプロパティにアクセスするために使用します。たとえば、{iteratorName}.value.{propertyName} のように使用します。
  • index — リスト内の項目のインデックス。
  • first — この項目がリスト内の最初の項目であるかどうかを示す Boolean 値。
  • last — この項目がリスト内の最後の項目であるかどうかを示す Boolean 値。

このサンプルコードでは、前の例と同じ配列が使用されています。リスト内の最初および最後の項目に特別な表示を適用するため、コードでは、lwc:if ディレクティブとともに first および last プロパティが使用されています。

項目がリスト内の最初の項目の場合は、<div> タグの表示時に、CSS list-first クラスに定義されているスタイルが使用されます。項目がリスト内の最後の項目の場合は、<div> タグの表示時に、CSS list-last クラスに定義されているスタイルが使用されます。

名前とタイトルのリスト。最初の名前とタイトルは太字で表示されています。

lwc-recipes リポジトリの wireGetPicklistValues コンポーネントは、lightning-input 基本コンポーネントを使用して、選択リスト値のリストを表示します。

関連トピック