詳解vue slot插槽的使用方法
官方文檔其實已經(jīng)講得很詳細(xì),我根據(jù)文檔,把官方的小案例實現(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)容會替換掉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)無法使用子組件數(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,這樣父組件也可以訪問three這個組件的數(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>
單個slot使用最簡單,也是最常用的,當(dāng)我們定義了一個子組件,父組件在使用的這個組件的時候,想在內(nèi)部自定義一些初始化數(shù)據(jù),這時候就可以用slot實現(xiàn)。
具名slot只是給slot加了name屬性,在使用的時候可以引入多個。
作用域slot就比較強(qiáng)大了,我們知道子組件的數(shù)據(jù),在父組件中是無法使用的,但是通過官方提供的擴(kuò)展,可以輕松實現(xiàn)這一點。
渲染后效果圖,可以直接自己在瀏覽器運(yùn)行查看效果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue前端優(yōu)雅展示后端十萬條數(shù)據(jù)面試點剖析
這篇文章主要為大家介紹了vue前端優(yōu)雅展示后端十萬條數(shù)據(jù)的考點剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07如何在 ant 的table中實現(xiàn)圖片的渲染操作
這篇文章主要介紹了如何在 ant 的table中實現(xiàn)圖片的渲染操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10前端低代碼form-generator實現(xiàn)及新增自定義組件詳解
這篇文章主要給大家介紹了關(guān)于前端低代碼form-generator實現(xiàn)及新增自定義組件的相關(guān)資料,form-generator是一個開源的表單生成器,可以幫助我們快速構(gòu)建各種表單頁面,需要的朋友可以參考下2023-11-11vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法
這篇文章主要介紹了vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09關(guān)于vue項目一直出現(xiàn) sockjs-node/info?t=XX的解決辦法
sockjs-node 是一個JavaScript庫,提供跨瀏覽器JavaScript的API,創(chuàng)建了一個低延遲、全雙工的瀏覽器和web服務(wù)器之間通信通道,這篇文章主要介紹了vue項目一直出現(xiàn) sockjs-node/info?t=XX的解決辦法,需要的朋友可以參考下2023-12-12