技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

LWC で slot 探し回って右往左往した件

もったいぶる趣味無いのでざっくり記述。
カスタムコンポーネントの内部に任意のHTMLタグを送り込みたいとする。

自分は Bootstrap の dialog ラッパーを書きたくでこれを使った
white-azalea.hatenablog.jp

<template>
  <lib-dialog
    title="銘柄"
    submit-name="保存"
    cancel-name="キャンセル"
    onclose={dispatchClose}
    onsubmit={dispatchClose}>

    <!-- 内部コンテンツ -->
    <p>Slot の内部</p>

  </lib-dialog>
</template>

これを受け止める dialog の定義は module/lib/dialog/dialog.html

<template>
  <div class="modal fade show" style="display: block;" tabindex="-1">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">{title}</h5>
          <button type="button" class="btn-close" aria-label="Close" onclick={onClose}></button>
        </div>
        <div class="modal-body">

          <!-- こんな風に定義 -->
          <slot></slot>

        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" onclick={onClose}>{cancelName}</button>
          <button type="button" class="btn btn-primary" onclick={onSubmit}>{submitName}</button>
        </div>
      </div>
    </div>
  </div>
</template>

すると
f:id:white-azalea:20210720224427p:plain

キーワードで「wrap」「inner content」「inner html」「入れ子」いずれで探してもヒットしない… slot ってネーミングセンスなんだよ slot って…(八つ当たり