vue 3.x 增加了v-slot的指令來代替原來2.6的slot,slot-scope屬性
原因:這里引用了官方的說法,我們計划統一插槽類型,因此不再需要(從概念上)區分作用域插槽和非作用域插槽。一個插槽可能會或可能不會接收道具,但它們全都是插槽。有了這個概念上的統一,具有slot
和slot-scope
在兩個特殊屬性似乎沒有必要,這將是很好的統一語法的單個構建下也是如此(統一插槽屬性,便於學習)
之前也寫過有關slot屬性的使用,現在以新舊比較的方式來使用新指令v-slot
slot屬性:https://www.cnblogs.com/chujunqiao/p/11807021.html
1 普通插槽
這里有一個my-template的組件
組件里有一個slot模版
my-template組件內的內容會替換到默認的slot標簽中(沒有name屬性的slot)
結果:
顯示寫法:
2 具名插槽
可以通過給v-slot指令增加一個參數名稱來指定具體的某一個插槽(具有name屬性的slot)
模版內容會替換具有name屬性,而且name=‘vslot’的插槽
結果:
具名插槽縮寫:#vslot
3 作用域插槽
父級組件決定插槽內容的渲染方式
把默認slot重命名為mySlot 循環在slot上綁定的data數據
結果:
作用域插槽的解構使用:
寫法變換:
這里把data數據直接解構出來使用,不用再通過slot對象來引用