Vue 怎么通过 props 将插槽传递给子组件?

父组件

<template>
    <child-component :data='data'>
        <div>custom</div>
    </child-component>
</template>
<script>
const data = [
    {
        type: 'input',
    },
    {
        type: 'select'
    },
    {
        type: 'custom'
    }
]
</script>

子组件

<template>
    <template v-for='item in data'>
        <input v-if="item.type === 'input'" />
        <select v-if="item.type === 'select'" />
        如果 type == 'custom' 使用父组件的 `<div>custom</div>`
    </template>
</template>

请问怎么实现 type == 'custom' 的情况

阅读 1.7k
2 个回答

可以使用插槽

<template>
    <template v-for='item in data'>
        <input v-if="item.type === 'input'" />
        <select v-if="item.type === 'select'" />
        如果 type == 'custom' 使用父组件的 `<div>custom</div>`
        <slot v-if="item.type === 'custom'"></slot>
    </template>
</template>

子组件改成这样:

<template>
    <template v-for='item in data'>
        <input v-if="item.type === 'input'" />
        <select v-if="item.type === 'select'" />
        <div v-if="item.type === 'custom">
            <slot></slot>
        </div>
    </template>
</template>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题