slot 插槽
Vue 元件裡的 slot插槽,讓我們可以在元件模板裡替換部分內容。以下介紹用法。

vue元件內,如果沒有slot 插槽,則插入的標籤不會被顯示。


在元件內 加入<slot></slot>
插槽,則 p 段落可被插入模板中。
當我們的模板裡,有多個地方要替換內容時,可以使用具名插槽。
在外層用 v-slot: 指定插入的位置,default為預設插入位置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <card2> <template v-slot:header>我喜歡這張卡片</template> <!-- 預設請加入 default --> <template v-slot:default>這是卡片 2 號</template> <template v-slot:footer>這是卡片腳</template> </card2>
<card2> <template #header>我喜歡這張卡片</template> <template #default>這是卡片 2 號</template> <template #footer>這是卡片腳</template> </card2>
|
1 2 3 4 5 6 7 8 9 10 11 12
| template: ` <div class="card" style="width: 18rem;"> <div class="card-header"> <slot name="header">元件 Header</slot> </div> <div class="card-body"> <slot>這段是預設的文字</slot> </div> <div class="card-footer"> <slot name="footer">元件 Footer</slot> </div> </div>`
|
在元件內部 用 name 標示指定插槽位置,沒有加name則為預設插入位置。