詳解vue slot插槽的使用方法
官方文檔其實(shí)已經(jīng)講得很詳細(xì),我根據(jù)文檔,把官方的小案例實(shí)現(xiàn)了一下,這樣更直觀
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="https://unpkg.com/vue@2.3.3/dist/vue.js"></script>
</head>
<body>
<div id="app">
<div>
<!-- 單slot -->
<v-one>
<!-- 這里的所有內(nèi)容會(huì)替換掉slot -->
<p>初始化段落一</p>
<p>初始化段落二</p>
</v-one>
<!-- 渲染結(jié)果 -->
<!-- <div>
<h1>組件標(biāo)題</h1>
<p>初始化段落一</p>
<p>初始化段落二</p>
<p>組件段落內(nèi)容</p>
<p>I am one</p>
</div> -->
<!-- 具名slot -->
<v-two>
<p slot="nav">我是導(dǎo)航</p>
<p slot="main">我是內(nèi)容</p>
<p slot="footer">我是底部</p>
</v-two>
<!-- 渲染結(jié)果 -->
<!-- <div>
<nav>
<p>我是導(dǎo)航</p>
</nav>
<main>
<p>我是內(nèi)容</p>
</main>
<footer>
<p>我是底部</p>
</footer>
</div> -->
<!-- 作用域插槽 -->
<v-three>
<!-- 父組件默認(rèn)無(wú)法使用子組件數(shù)據(jù) -->
<template scope="props">
<p>{{props.text}}</p>
</template>
</v-three>
<!-- 渲染結(jié)果 -->
<!-- <div><p>I am three</p></div> -->
</div>
</div>
<template id="one">
<div>
<h1>組件標(biāo)題</h1>
<slot></slot>
<p>組件段落內(nèi)容</p>
<p>{{one}}</p>
</div>
</template>
<!-- 具名slot -->
<template id="two">
<div>
<nav>
<slot name="nav"></slot>
</nav>
<main>
<slot name="main"></slot>
</main>
<footer>
<slot name="footer"></slot>
</footer>
</div>
</template>
<!-- 作用域插槽 -->
<template id="three">
<div>
<!-- 把數(shù)據(jù)傳遞給slot,這樣父組件也可以訪問(wèn)three這個(gè)組件的數(shù)據(jù) -->
<slot :text="three"></slot>
</div>
</template>
<script>
new Vue({
el: '#app',
components: {
'v-one': {
template: '#one',
data() {
return {
'one': 'I am one'
}
}
},
'v-two': {
template: '#two',
data() {
return {
'two': 'I am two'
}
}
},
'v-three': {
template: '#three',
data() {
return {
'three': 'I am three'
}
}
}
}
});
</script>
</body>
</html>
單個(gè)slot使用最簡(jiǎn)單,也是最常用的,當(dāng)我們定義了一個(gè)子組件,父組件在使用的這個(gè)組件的時(shí)候,想在內(nèi)部自定義一些初始化數(shù)據(jù),這時(shí)候就可以用slot實(shí)現(xiàn)。
具名slot只是給slot加了name屬性,在使用的時(shí)候可以引入多個(gè)。
作用域slot就比較強(qiáng)大了,我們知道子組件的數(shù)據(jù),在父組件中是無(wú)法使用的,但是通過(guò)官方提供的擴(kuò)展,可以輕松實(shí)現(xiàn)這一點(diǎn)。
渲染后效果圖,可以直接自己在瀏覽器運(yùn)行查看效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue前端優(yōu)雅展示后端十萬(wàn)條數(shù)據(jù)面試點(diǎn)剖析
這篇文章主要為大家介紹了vue前端優(yōu)雅展示后端十萬(wàn)條數(shù)據(jù)的考點(diǎn)剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
如何在 ant 的table中實(shí)現(xiàn)圖片的渲染操作
這篇文章主要介紹了如何在 ant 的table中實(shí)現(xiàn)圖片的渲染操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
前端低代碼form-generator實(shí)現(xiàn)及新增自定義組件詳解
這篇文章主要給大家介紹了關(guān)于前端低代碼form-generator實(shí)現(xiàn)及新增自定義組件的相關(guān)資料,form-generator是一個(gè)開(kāi)源的表單生成器,可以幫助我們快速構(gòu)建各種表單頁(yè)面,需要的朋友可以參考下2023-11-11
基于vue 開(kāi)發(fā)中出現(xiàn)警告問(wèn)題去除方法
下面小編就為大家分享一篇基于vue 開(kāi)發(fā)中出現(xiàn)警告問(wèn)題去除方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
vue3實(shí)現(xiàn)局部頁(yè)面刷新效果的示例詳解
這篇文章主要為大家詳細(xì)介紹了vue3如何采用 App.vue定義全局變量與方法并實(shí)現(xiàn)局部頁(yè)面刷新效果,文中的示例代碼講解詳細(xì),需要的可以參考一下2024-01-01
vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法
這篇文章主要介紹了vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
關(guān)于vue項(xiàng)目一直出現(xiàn) sockjs-node/info?t=XX的解決辦法
sockjs-node 是一個(gè)JavaScript庫(kù),提供跨瀏覽器JavaScript的API,創(chuàng)建了一個(gè)低延遲、全雙工的瀏覽器和web服務(wù)器之間通信通道,這篇文章主要介紹了vue項(xiàng)目一直出現(xiàn) sockjs-node/info?t=XX的解決辦法,需要的朋友可以參考下2023-12-12

