vue插槽slot的簡(jiǎn)單理解與用法實(shí)例分析
本文實(shí)例講述了vue插槽slot的簡(jiǎn)單理解與用法。分享給大家供大家參考,具體如下:
vue中插槽的使用非常廣泛,本文就插槽的使用和理解簡(jiǎn)單總結(jié)。
從字面理解插槽是預(yù)先插入一個(gè)代碼空間,用于后期塞入數(shù)據(jù)。
插槽分類(lèi)
匿名插槽 ------------------ 匿名的代碼空間
具名插槽 ------------------ 帶有命名的代碼空間
作用域插槽 ------------------- 帶有數(shù)據(jù)的代碼空間
插槽使用示例
匿名插槽
說(shuō)明在組件中先定義預(yù)留的代碼空間,組件在使用時(shí)直接寫(xiě)入代碼
<template> <div class="child"> <h3>這里是子組件</h3> <slot></slot> </div> </template>
使用:
<template> <div class="father"> <h3>這里是父組件</h3> <child> <div class="tmpl"> <span>菜單1</span> <span>菜單2</span> <span>菜單3</span> <span>菜單4</span> <span>菜單5</span> <span>菜單6</span> </div> </child> </div> </template>
具名插槽
預(yù)先在組件中定義一個(gè)帶有名稱(chēng)的代碼空間,使用組件時(shí)用:slot綁定名稱(chēng)
<template> <div class="child"> // 具名插槽 <slot name="up"></slot> <h3>這里是子組件</h3> // 具名插槽 <slot name="down"></slot> // 匿名插槽 <slot></slot> </div> </template>
使用:
<template> <div class="father"> <h3>這里是父組件</h3> <child> //插槽up <div class="tmpl" slot="up"> <span>菜單1</span> <span>菜單2</span> <span>菜單3</span> <span>菜單4</span> <span>菜單5</span> <span>菜單6</span> </div> //插槽down <div class="tmpl" slot="down"> <span>菜單-1</span> <span>菜單-2</span> <span>菜單-3</span> <span>菜單-4</span> <span>菜單-5</span> <span>菜單-6</span> </div> //匿名插槽 <div class="tmpl"> <span>菜單->1</span> <span>菜單->2</span> <span>菜單->3</span> <span>菜單->4</span> <span>菜單->5</span> <span>菜單->6</span> </div> </child> </div> </template>
作用域插槽 (有數(shù)據(jù),但放開(kāi)了渲染)
在組件中預(yù)先定義一個(gè)帶有數(shù)據(jù)資源的代碼空間,使用組件時(shí)可以直接使用代碼空間中的數(shù)據(jù)
定義
<template> <div class="child"> <h3>這里是子組件</h3> // 作用域插槽 <slot :data="data"></slot> </div> </template>
export default { data: function(){ return { data: ['zhangsan','lisi','wanwu','zhaoliu','tianqi','xiaoba'] } } }
使用
<template> <div class="father"> <h3>這里是父組件</h3> <!--第一次使用:用flex展示數(shù)據(jù)--> <child> <template slot-scope="user"> <div class="tmpl"> <span v-for="item in user.data">{{item}}</span> </div> </template> </child> <!--第二次使用:用列表展示數(shù)據(jù)--> <child> <template slot-scope="user"> <ul> <li v-for="item in user.data">{{item}}</li> </ul> </template> </child> <!--第三次使用:直接顯示數(shù)據(jù)--> <child> <template slot-scope="user"> {{user.data}} </template> </child> <!--第四次使用:不使用其提供的數(shù)據(jù), 作用域插槽退變成匿名插槽--> <child> 我就是模板 </child> </div> </template>
總結(jié):
匿名插槽和具名插槽的功能是 預(yù)留插入代碼的空間;
作用域插槽是提供數(shù)據(jù)資源,預(yù)留代碼渲染邏輯空間。
希望本文所述對(duì)大家vue.js程序設(shè)計(jì)有所幫助。
相關(guān)文章
Vue 使用計(jì)時(shí)器實(shí)現(xiàn)跑馬燈效果的實(shí)例代碼
這篇文章主要介紹了Vue 使用計(jì)時(shí)器實(shí)現(xiàn)跑馬燈效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07Vue.js項(xiàng)目前端多語(yǔ)言方案的思路與實(shí)踐
前端的國(guó)際化是一個(gè)比較常見(jiàn)的需求,但網(wǎng)上關(guān)于這一方面的直接可用的方案卻不多,這篇文章主要給大家介紹了關(guān)于Vue.js項(xiàng)目前端多語(yǔ)言方案的思路與實(shí)踐,需要的朋友可以參考下2021-07-07Vue.js如何優(yōu)雅的進(jìn)行form validation
Vue.js如何優(yōu)雅的進(jìn)行form validation,針對(duì)此問(wèn)題,給出了多個(gè)網(wǎng)友的回答,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04前端登錄退出處理Token問(wèn)題(獲取、緩存、失效處理)及代碼實(shí)現(xiàn)方法
token是一個(gè)用戶(hù)信息的表示,在登錄中將會(huì)從后端拿到token,然后用戶(hù)才可以進(jìn)行往后的一系列操作,這篇文章主要給大家介紹了關(guān)于前端登錄退出處理Token問(wèn)題(獲取、緩存、失效處理)及代碼實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下2024-01-01vue3動(dòng)態(tài)加載組件以及動(dòng)態(tài)引入組件詳解
?平常的vue項(xiàng)目開(kāi)發(fā),已經(jīng)很難遇見(jiàn)一千行,甚至幾千行代碼的頁(yè)面了,畢竟大家都會(huì)去拆分組件,下面這篇文章主要給大家介紹了關(guān)于vue3動(dòng)態(tài)加載組件以及動(dòng)態(tài)引入組件的相關(guān)資料,需要的朋友可以參考下2023-03-03使用Vue-cli 3.0搭建Vue項(xiàng)目的方法
這篇文章主要介紹了使用Vue-cli 3.0搭建Vue項(xiàng)目的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06