vue用slot实现一个子组件向两个父组件传递不同的div
时间: 2023-11-12 17:04:32 浏览: 95
可以通过在子组件中使用具名插槽(named slot)来实现这个需求。
首先,在子组件中定义两个具名插槽,例如:
```html
<template>
<div>
<slot name="div1"></slot>
<slot name="div2"></slot>
</div>
</template>
```
然后,在父组件中,可以分别使用相应的插槽来传递不同的 div 元素,例如:
```html
<template>
<div>
<my-component>
<div slot="div1">This is div1 from Parent 1</div>
</my-component>
<my-component>
<div slot="div2">This is div2 from Parent 2</div>
</my-component>
</div>
</template>
<script>
import MyComponent from './MyComponent.vue'
export default {
components: {
MyComponent
}
}
</script>
```
在这个例子中,第一个父组件向子组件传递了一个具名插槽 div1,内容为 "This is div1 from Parent 1";第二个父组件向子组件传递了一个具名插槽 div2,内容为 "This is div2 from Parent 2"。在子组件中,分别使用了这两个具名插槽来渲染不同的 div 元素。
阅读全文