Vue框架中的$slot屬性是一個(gè)非常有用的特性,可以用于獲取組件的插槽內(nèi)容。插槽可以在組件內(nèi)部定義,允許開發(fā)者在使用該組件時(shí),自定義其內(nèi)部內(nèi)容。
獲取$slot的方式非常簡單,只需要在組件內(nèi)部調(diào)用this.$slot即可。以下是一個(gè)示例組件:
Vue.component('my-slot', { template: ` <div> <h2>插槽示例</h2> <slot></slot> </div> ` })
該組件內(nèi)部定義了一個(gè)插槽,用于展示其內(nèi)容。在使用該組件時(shí),會(huì)自動(dòng)替換slot標(biāo)簽內(nèi)的內(nèi)容。以下是一個(gè)示例:
<my-slot> <p>這是一個(gè)插槽示例</p> </my-slot>
在組件中獲取該插槽的內(nèi)容,只需調(diào)用this.$slot即可:
Vue.component('my-slot', { template: ` <div> <h2>插槽示例</h2> <slot></slot> </div> `, mounted() { console.log(this.$slot) // 輸出為:[ { tag: 'p', text: '這是一個(gè)插槽示例' } ] } })
可以看到,this.$slot返回了一個(gè)包含插槽內(nèi)容的數(shù)組,數(shù)組中每個(gè)對(duì)象表示一個(gè)插槽節(jié)點(diǎn),其中tag表示節(jié)點(diǎn)標(biāo)簽名,text表示節(jié)點(diǎn)的文本內(nèi)容。