当前位置:首页 > VUE

vue插槽实现

2026-03-27 10:51:07VUE

Vue 插槽的基本概念

插槽(Slot)是 Vue 组件化开发中的重要特性,允许父组件向子组件传递模板片段,实现内容分发。插槽的核心作用是增强组件的灵活性和复用性。

默认插槽

子组件通过 <slot> 标签定义插槽位置,父组件在子组件标签内插入内容时会替换插槽。

子组件定义

<template>
  <div>
    <h3>子组件标题</h3>
    <slot></slot> <!-- 默认插槽 -->
  </div>
</template>

父组件使用

<template>
  <ChildComponent>
    <p>这是插入到默认插槽的内容</p>
  </ChildComponent>
</template>

具名插槽

通过 name 属性为插槽命名,实现多内容分发。

vue插槽实现

子组件定义

<template>
  <div>
    <slot name="header"></slot>
    <slot name="body"></slot>
  </div>
</template>

父组件使用
使用 v-slot 指令(缩写为 #)指定插槽名称。

<template>
  <ChildComponent>
    <template v-slot:header>
      <h1>标题内容</h1>
    </template>
    <template #body> <!-- 缩写语法 -->
      <p>正文内容</p>
    </template>
  </ChildComponent>
</template>

作用域插槽

子组件通过插槽向父组件传递数据,父组件可以基于子组件的数据定制渲染内容。

vue插槽实现

子组件定义

<template>
  <div>
    <slot :item="itemData"></slot>
  </div>
</template>
<script>
export default {
  data() {
    return { itemData: { text: "子组件数据" } };
  }
};
</script>

父组件使用
通过 v-slot 接收子组件传递的数据。

<template>
  <ChildComponent>
    <template v-slot="slotProps">
      <p>{{ slotProps.item.text }}</p>
    </template>
  </ChildComponent>
</template>

动态插槽名

通过动态指令绑定插槽名称,实现灵活插槽分发。

<template>
  <ChildComponent>
    <template v-slot:[dynamicSlotName]>
      <p>动态插槽内容</p>
    </template>
  </ChildComponent>
</template>
<script>
export default {
  data() {
    return { dynamicSlotName: "header" };
  }
};
</script>

插槽的默认内容

子组件可以在 <slot> 内定义默认内容,当父组件未提供插槽内容时显示。

<template>
  <slot>默认内容(父组件未传递时显示)</slot>
</template>

注意事项

  • 插槽内容在父组件作用域编译,但作用域插槽的数据来自子组件。
  • v-slot 只能用于 <template> 或组件标签(Vue 2.6+)。
  • 默认插槽的 v-slot 可简写为 #default

通过合理使用插槽,可以实现高度可定制的组件设计,满足复杂场景的需求。

标签: 插槽vue
分享给朋友:

相关文章

vue插槽实现

vue插槽实现

插槽的基本概念 Vue插槽(Slot)是一种内容分发机制,允许父组件向子组件传递模板片段,子组件通过<slot>标签定义接收位置。插槽的核心作用是增强组件的灵活性和复用性。 默认插槽 子…

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,jQuery 以 DOM 操作和事件驱动为核心,而 Vue.js 是数据驱动的现代化框架。如果想用 jQuery 实现类似 Vue 的功能(如…

vue实现模块

vue实现模块

Vue 实现模块化的方法 Vue 支持多种模块化开发方式,可以根据项目需求选择适合的方案。 使用单文件组件(SFC) 单文件组件是 Vue 最常用的模块化方式,将模板、脚本和样式封装在一个 .vue…

vue实现pc

vue实现pc

Vue 实现 PC 端应用开发 Vue.js 是一个流行的前端框架,适用于构建 PC 端 Web 应用。以下是关键步骤和最佳实践: 项目初始化 使用 Vue CLI 或 Vite 创建项目:…

vue实现路径

vue实现路径

Vue 实现路径的方法 在 Vue 中实现路径管理通常涉及 Vue Router 的使用,以下是一些常见的实现方法: 安装 Vue Router 通过 npm 或 yarn 安装 Vue Route…

vue 实现赋值

vue 实现赋值

Vue 实现赋值的方法 在 Vue 中,赋值操作通常涉及数据绑定和响应式更新。以下是几种常见的赋值方式: 直接赋值给 data 属性 在 Vue 实例的 data 对象中定义的属性可以直接通过 th…