Vue3系列教程之插槽slot詳解
插槽就是子組件中的提供給父組件使用的一個占位符,用<slot></slot> 表示,父組件可以在這個占位符中填充任何模板代碼,如 HTML、組件等,填充的內容會替換子組件的<slot></slot>標簽。
1匿名插槽
(1)在子組件放置一個插槽,mytest.vue
<template> <div> <slot>我這里設置默認值</slot> </div> </template>
(2)父組件使用插槽,在父組件給這個插槽填充內容,如果不設置內容就會引用子組件的內容
<myslot> <template v-slot> <div>我是插槽的值</div> </template> </myslot>
2具名插槽
具名插槽其實就是給插槽取個名字。一個子組件可以放多個插槽,而且可以放在不同的地方,而父組件填充內容時,可以根據這個名字把內容填充到對應插槽中.
<template> <div> <slot name="header"></slot> <slot>我這里設置默認值</slot> <slot name="footer"></slot> </div> </template>
父組件使用需對應名稱.
<myslot> <template v-slot:header> <div>我是插槽header的值</div> </template> <template v-slot> <div>我是插槽的值</div> </template> <template v-slot:footer> <div>我是插槽footer的值</div> </template> </myslot>
這里還可以進行簡寫
<myslot> <template #header> <div>我是插槽header的值</div> </template> <template #default> <div>我是插槽的值</div> </template> <template #footer> <div>我是插槽footer的值</div> </template> </myslot>
3作用域插槽
在子組件動態(tài)綁定參數 派發(fā)給父組件的slot去使用.
<template> <div> <slot name="header"></slot> <div :key="item" v-for="item in 100"> <slot v-bind:data="item">我這里設置默認值</slot> </div> <slot name="footer"></slot> </div> </template>
通過結構方式取值:
<myslot> <template #header> <div>我是插槽header的值</div> </template> <template #default="{ data }"> <div>我是插槽傳過來的值{{ data }}</div> </template> <template #footer> <div>我是插槽footer的值</div> </template> </myslot>
4動態(tài)插槽
插槽可以是一個變量名
<template> <div> <myslot> <template #[name]> <div>我是變量插槽{{name}}</div> </template> </myslot> </div> </template> <script setup lang="ts"> import myslot from './components/test_slot.vue' import { ref } from 'vue' const name = ref<string>('header') </script>
到此這篇關于Vue3系列教程之插槽slot的文章就介紹到這了,更多相關vue3插槽slot內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue3使用vis繪制甘特圖制作timeline可拖動時間軸及時間軸中文化(推薦)
這篇文章主要介紹了vue3使用vis繪制甘特圖制作timeline可拖動時間軸,時間軸中文化,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02