亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

vue 作用域插槽

vue 作用域插槽

慕桂英546537 2019-10-18 09:01:24
vm.$slots可以獲取插槽節點//子組件父級別{{row}}這樣在slot中created打印vm.$slots返回kzName但是改為作用域插槽后打印就是{}{{row}}
查看完整描述

2 回答

?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

vm.$slots是獲取靜態插槽內容的屬性,直接得到每個插槽相應的Vnode節點,你的第一種寫法v-slot:KzName或#KzName都是用作靜態插槽。靜態插槽的實現是在組件初始化剛開始的時候就去拿渲染后的內容,它定義在initRender方法中,并且這個方法的初次調用先于created,所以一開始可以在created里得到有值的內容。
作用域插槽的獲取一定要使用vm.$scopedSlots,你后面的寫法就是作用域插槽。并且在獲取它的時候要在mounted里才能拿到,這是由于作用域插槽在組件初始化中要等到其他變量初始完才能正確獲取變量的值,它的第一次賦值要等到組件渲染時才完成。雖然$scopedSlots的初始化也是在initRender方法里,但那時很明顯只是給了它一個空對象,它的賦值是在_render方法中,所以你在渲染函數中是可以拿到的。
關于這兩個屬性的具體實現參考一下源碼中的render.js
                            
查看完整回答
反對 回復 2019-10-18
  • 2 回答
  • 0 關注
  • 314 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號