您好,登錄后才能下訂單哦!
小編給大家分享一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。