vue3用slot实现一个子组件向两个父组件传递不同的div
时间: 2023-10-31 17:13:46 浏览: 103
可以通过在子组件中使用具名插槽(named slot)来实现子组件向两个父组件传递不同的 div。
首先,在子组件中定义两个具名插槽,例如:
```
<template>
<div>
<slot name="div1"></slot>
<slot name="div2"></slot>
</div>
</template>
```
然后,在父组件中,使用 `<template>` 标签来定义具名插槽的内容,并通过 `v-slot` 或 `#` 来指定插槽的名称,例如:
```
<template>
<div>
<my-component>
<template v-slot:div1>
<div>This is div1 for parent1.</div>
</template>
</my-component>
<my-component>
<template v-slot:div2>
<div>This is div2 for parent2.</div>
</template>
</my-component>
</div>
</template>
```
在上面的例子中,第一个 `<my-component>` 组件中的 `div1` 插槽将被填充为 "This is div1 for parent1.",而第二个 `<my-component>` 组件中的 `div2` 插槽将被填充为 "This is div2 for parent2."。
注意,具名插槽的名称必须与子组件中定义的名称相同。
阅读全文