当前位置:首页 > VUE

vue slot实现

2026-01-12 17:59:29VUE

Vue Slot 实现方法

Vue 的 slot(插槽)是一种内容分发机制,允许父组件向子组件传递模板片段,实现灵活的组件复用。以下是 slot 的核心用法和实现方式:

默认插槽

子组件通过 <slot> 标签定义插槽位置,父组件传递的内容会替换该标签:

vue slot实现

<!-- 子组件 Child.vue -->
<template>
  <div>
    <slot>默认内容(当父组件未传递内容时显示)</slot>
  </div>
</template>

<!-- 父组件 -->
<Child>
  <p>父组件插入的内容</p>
</Child>

具名插槽

通过 name 属性定义多个插槽,父组件用 v-slot 指令指定目标插槽:

vue slot实现

<!-- 子组件 Layout.vue -->
<template>
  <div>
    <header>
      <slot name="header"></slot>
    </header>
    <main>
      <slot></slot>  <!-- 默认插槽 -->
    </main>
  </div>
</template>

<!-- 父组件 -->
<Layout>
  <template v-slot:header>
    <h1>标题内容</h1>
  </template>
  <p>主内容(自动插入默认插槽)</p>
</Layout>

作用域插槽

子组件通过插槽向父组件传递数据,父组件可基于数据自定义渲染逻辑:

<!-- 子组件 List.vue -->
<template>
  <ul>
    <li v-for="item in items" :key="item.id">
      <slot :item="item"></slot>
    </li>
  </ul>
</template>

<!-- 父组件 -->
<List :items="listData">
  <template v-slot:default="slotProps">
    <span>{{ slotProps.item.name }}</span>
  </template>
</List>

动态插槽名

通过动态指令参数绑定插槽名:

<template v-slot:[dynamicSlotName]>
  <!-- 内容 -->
</template>

缩写语法

  • v-slot:header 可缩写为 #header
  • 默认插槽可缩写为 v-slot="slotProps"#default="slotProps"

注意事项

  • 默认插槽和具名插槽不能混合使用(Vue 2 中会警告,Vue 3 中会报错)。
  • 作用域插槽的数据传递遵循单向数据流原则。
  • Vue 3 中废弃了 slotslot-scope 属性,统一使用 v-slot 指令。

标签: vueslot
分享给朋友:

相关文章

vue实现评论

vue实现评论

Vue 实现评论功能的方法 基础评论组件结构 使用 Vue 单文件组件(SFC)构建评论功能的核心结构。模板部分包含评论输入框和评论列表,脚本部分处理数据绑定和逻辑。 <template>…

vue实现单选

vue实现单选

Vue 实现单选功能 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以实现单选功能。单选按钮的…

vue如何实现注册

vue如何实现注册

实现用户注册功能 在Vue中实现注册功能通常需要结合前端表单和后端API交互。以下是完整的实现方案: 创建注册表单组件 注册表单需要包含用户名、邮箱、密码等基本字段,并进行表单验证: <…

vue前端实现注册

vue前端实现注册

使用 Vue 实现用户注册功能 环境准备 确保已安装 Vue CLI 或通过 CDN 引入 Vue。若使用 Vue CLI,需安装 axios 或其他 HTTP 库用于后端通信。 注册表单组件 创建…

vue实现tab换行

vue实现tab换行

Vue实现Tab切换的常见方法 使用Vue实现Tab切换功能可以通过多种方式完成,以下是几种常见的方法: 动态组件结合v-if或v-show 通过v-if或v-show控制不同Tab内容的显示…

vue怎么实现选中删除

vue怎么实现选中删除

实现选中删除功能的方法 在Vue中实现选中删除功能通常涉及以下几个关键步骤: 数据绑定与选中状态管理 使用v-model或v-for指令绑定列表数据,结合复选框或单选按钮实现选中状态管理。例如…