LWCにおけるSlotの利用について

Posted by

Slotとは

slotは、親コンポーネントから子コンポーネントにマークアップを渡すための方法です。slotタグを子コンポーネントのHTMLファイルで宣言することで、親コンポーネントから渡されたコンテンツを表示することできます。

サンプル

<!-- 親コンポーネント -->
<template>
  <c-child-component>
    <p slot="content">Hello, World!</p>
  </c-child-component>
</template>

<!-- 子コンポーネント(childComponent) -->
<template>
  <div>
    <slot name="content"></slot>
  </div>
</template>

この例では、親コンポーネントでc-child-componentを呼び出し、子コンポーネントのテンプレート内にあるスロットタグのname属性に”content”を指定しています。

その後、親コンポーネント内でタグを定義し、slot属性に”content”を指定しています。これにより、子コンポーネントには親コンポーネントから渡された”Hello, World!”が表示されます。

Slotを利用することのメリット

スロットを利用することで、子コンポーネントのHTMLテンプレート内に動的なコンテンツを表示することができます。また、複数のスロットを利用することもでき、それぞれに異なるname属性を指定することができます。スロットを利用することで、コンポーネントの再利用性を高めることができます。

以上、SalesforceのLWCでのSlotの利用方法についてご紹介いたしました。ご参考になれば幸いです。

参考

<slot>: ウェブコンポーネントのスロット要素
https://developer.mozilla.org/ja/docs/Web/HTML/Element/slot

スロットにマークアップを渡す
https://developer.salesforce.com/docs/component-library/documentation/ja-jp/lwc/lwc.create_components_slots