Vue匿名插槽與作用域插槽的合并和覆蓋行為
Vue 測試版本:Vue.js v2.5.13
Vue 文檔:
<slot> 元素可以用一個特殊的特性 name 來進一步配置如何分發(fā)內(nèi)容。多個插槽可以有不同的名字。具名插槽將匹配內(nèi)容片段中有對應 slot 特性的元素。
仍然可以有一個匿名插槽,它是默認插槽,作為找不到匹配的內(nèi)容片段的備用插槽。
具體應用的時候:
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'
});
};
效果:匿名插槽以匿名作用域插槽模板為準進行渲染,即使你把匿名插槽模板放后面,也是一樣的結果;
由此可以看出,最好不要使用匿名、默認插槽,最好使用具名插槽,可以減少不確定性;
參考文檔:
https://cn.vuejs.org/v2/guide/components.html#具名插槽
總結
以上所述是小編給大家介紹的Vue匿名插槽與作用域插槽的合并和覆蓋行為,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
一篇文章教你實現(xiàn)VUE多個DIV,button綁定回車事件
這篇文章主要介紹了VUE多個DIV綁定回車事件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-10-10




