Vue中的slot是一種非常有用的模板語(yǔ)法,它允許我們?cè)诮M件中定義插槽,然后在父級(jí)作用域中渲染插槽內(nèi)容。而slot scope是Vue 2.1中添加的一項(xiàng)新功能,可以更加靈活地處理插槽內(nèi)容。
當(dāng)我們?cè)诮M件中定義插槽時(shí),通過(guò)slot-scope這個(gè)特殊的屬性,我們可以為插槽傳遞一個(gè)對(duì)象,并將這個(gè)對(duì)象的屬性綁定到插槽模板中的DOM元素上。
Vue.component('my-component', {
template: '<div><slot v-bind:user="user"></slot></div>',
data: function () {
return {
user: {
name: 'John Doe',
age: 30
}
}
}
})
<my-component>
<template v-slot:default="slotProps">
<p>Hello, {{ slotProps.user.name }}!</p>
</template>
</my-component>
在這個(gè)組件中,我們將user對(duì)象傳遞到了用v-bind:user綁定的插槽中,然后在父級(jí)作用域中,我們使用v-slot:default來(lái)定義插槽,同時(shí)用slotProps來(lái)接收這個(gè)對(duì)象。
這樣一來(lái),我們就可以在插槽模板中通過(guò)slotProps來(lái)訪問(wèn)user對(duì)象,從而獲得更加靈活的渲染方式。
下一篇3屏vue