Vue匿名插槽與作用域插槽的合并和覆蓋行為
Vue 測試版本:Vue.js v2.5.13
Vue 文檔:
<slot> 元素可以用一個特殊的特性 name 來進一步配置如何分發(fā)內(nèi)容。多個插槽可以有不同的名字。具名插槽將匹配內(nèi)容片段中有對應(yīng) slot 特性的元素。
仍然可以有一個匿名插槽,它是默認插槽,作為找不到匹配的內(nèi)容片段的備用插槽。
具體應(yīng)用的時候:
1、匿名插槽的合并行為:
<div id="app">
<myele>
<div>
default slot
</div>
<div>
<div>from parent!</div>
<div>from parent!</div>
</div>
</myele>
</div>
window.onload = function() {
Vue.component('myele', {
template: `
<div>
<slot></slot>
</div>
`
});
new Vue({
el: '#app'
});
};
效果:內(nèi)容合并
2、匿名作用域插槽的覆蓋行為:
<div id="app">
<myele>
<div slot-scope="props">
<div>from parent!</div>
<div>from {{props.text}}</div>
</div>
<div slot-scope="prop">
<div>from </div>
<div>{{prop.text}}</div>
</div>
</myele>
</div>
window.onload = function() {
Vue.component('myele', {
template: `
<div>
<slot text="child"></slot>
<slot text="child2"></slot>
//即使 text 和上一行一樣,也不會報錯,開發(fā)環(huán)境 </div>
`
});
new Vue({
el: '#app'
});
};
效果:以靠后的作用域插槽模板為準,繪制了兩遍;
3、匿名插槽模板和作用域插槽模板混合:
<div id="app">
<myele>
<div>
default slot
</div>
<div slot-scope="props">
<div>from parent!</div>
<div>from {{props.text}}</div>
</div>
</myele>
</div>
window.onload = function() {
Vue.component('myele', {
template: `
<div>
<slot></slot>
<slot text="child"></slot>
</div>
`
});
new Vue({
el: '#app'
});
};
效果:匿名插槽以匿名作用域插槽模板為準進行渲染,即使你把匿名插槽模板放后面,也是一樣的結(jié)果;
由此可以看出,最好不要使用匿名、默認插槽,最好使用具名插槽,可以減少不確定性;
參考文檔:
https://cn.vuejs.org/v2/guide/components.html#具名插槽
總結(jié)
以上所述是小編給大家介紹的Vue匿名插槽與作用域插槽的合并和覆蓋行為,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
仿ElementUI實現(xiàn)一個Form表單的實現(xiàn)代碼
這篇文章主要介紹了仿ElementUI實現(xiàn)一個Form表單的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
require.js 加載 vue組件 r.js 合并壓縮的實例
這篇文章主要介紹了require.js 加載 vue組件 r.js 合并壓縮的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-10-10
vue輪播圖插件vue-awesome-swiper的使用代碼實例
本篇文章主要介紹了vue輪播圖插件vue-awesome-swiper的使用代碼實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07




