Vue 插槽
1. 具名插槽
子组件:component3
<template> <div class="button"> <button>插槽</button> <slot name="one">这是默认值1</slot> <slot name="two">这是默认值2</slot> <slot name="three">这是默认值3</slot> </div> </template>
父组件:
通过 v-slot : name 的方式添加内容
<template> <div class="component3"> <component3> <template v-slot:one><p>这是插入到one插槽的内容</p></template> <template #two><p>这是插入到two插槽的内容</p></template> <template v-slot:three><p>这是插入到three插槽的内容</p></template> </component3> </div> </template>
vue 为了方便,书写 v-slot:one 的形式时,可以简写为 #one
2. 作用域插槽
子组件 component3:
<template> <div class="button"> <button>插槽</button> <slot name="one" :value1='child1'>这就是默认值1</slot> <slot :value2='child2'>这就是默认值2</slot> </div> </template> <script> export default { name: "component3", data(){ return{ child1: '数据1', child2: '数据2' } } } </script>
父组件:
<template> <div class="about"> <component3> <template v-slot:one = 'slotone'> {{ slotone.value1 }} </template> <template v-slot:default = 'slottwo'> {{ slottwo.value2}} </template> </component3> </div> </template>
3. 总结
- 首先在子组件的slot上动态绑定一个值( :key='value')
- 然后在父组件通过v-slot : name = ‘values ’的方式将这个值赋值给 values
- 最后通过{{ values.key }}的方式获取数据