v-slot用法简记
用法示例
vue2.6统一了插槽的语法v-slot
匿名插槽与具名插槽
在其他组件中使用child组件
<child>
<template v-slot:slotName>
hello world
</template>
</child>
child组件
<div>
<slot name="slotName"></slot>
</div>
上面是具名插槽的用法,省略插槽名:name属性
或插槽名为default
表示匿名插槽
插槽作用域
在其他组件中使用child组件
用法一:常规用法,slotProps
为自定义作用域名
<child>
<template v-slot:slotName=“slotProps”>
hello world
<span>{{ slotProps.user.firstName }}</span>
</template>
</child>
用法二:解构插槽Prop,实际上就是ES6解构JSON,可以使用:
替换参数名
<child>
<template v-slot:slotName=“{ user, age:nianling }”>
hello world
<span>{{ user.firstName }}</span>
<span>{{ nianling }}</span>
</template>
</child>
child组件,定义时将需要使用的作用域数据绑定在<slot>
即可,:user="user" :age="age"
<template>
<div>
<slot name="slotName" :user="user" :age="age"></slot>
</div>
</template>
<script>
export default {
data () {
return {
user: {
firstName: 'Cliff',
lastName: 'Rhine'
},
age: 24
}
}
}
</script>
组件使用插槽动态命名
v-slot:{dynamicSlotName}
总结
vue2.6后插槽的用法简单得了很多,也更加灵活,通过上面的示例可以看出,作用域插槽实际上就是在具名插槽的基础上进行赋值。
v-slot:插槽名
v-slot:插槽名="作用域名"
v-slot="作用域名"