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

