slot回传数据

在 Vue 3 中,父组件可以通过在子组件的 <slot> 标签上添加 v-bind 绑定来接收子组件通过插槽传递的数据。

假设子组件的模板如下所示:

<template>
  <div>
    <slot message="Hello from child"></slot>
  </div>
</template>

在父组件中,可以使用 v-slot# 来定义一个插槽,并在其中使用子组件的标签名,然后通过 v-bind 将子组件传递的数据绑定到父组件的模板中。例如:

<template>
  <div>
    <child-component>
      <template v-slot:default="{ message }">
        <p>{{ message }}</p>
      </template>
    </child-component>
  </div>
</template>

或者,使用简写的 # 符号:

<template>
  <div>
    <child-component>
      <template #default="{ message }">
        <p>{{ message }}</p>
      </template>
    </child-component>
  </div>
</template>

在上述例子中,message 是子组件传递给插槽的一个属性,可以在父组件的插槽模板中使用。父组件会渲染一个包含子组件传递的数据的 <p> 元素。

最后更新于

这有帮助吗?