小編給大家分享一下Vue中匿名插槽與作用域插槽合并和覆蓋行為的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Vue 測試版本:Vue.js v2.5.13
Vue 文檔:
<slot> 元素可以用一個特殊的特性 name 來進一步配置如何分發內容。多個插槽可以有不同的名字。具名插槽將匹配內容片段中有對應 slot 特性的元素。
仍然可以有一個匿名插槽,它是默認插槽,作為找不到匹配的內容片段的備用插槽。
具體應用的時候:
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'
});
};效果:內容合并

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 和上一行一樣,也不會報錯,開發環境 </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'
});
};效果:匿名插槽以匿名作用域插槽模板為準進行渲染,即使你把匿名插槽模板放后面,也是一樣的結果;

由此可以看出,最好不要使用匿名、默認插槽,最好使用具名插槽,可以減少不確定性;
以上是“Vue中匿名插槽與作用域插槽合并和覆蓋行為的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。