当前位置:首页 > VUE

vue插槽实现功能

2026-01-19 20:17:08VUE

Vue 插槽的基本概念

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

默认插槽

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

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

父组件使用:

<ChildComponent>
  <p>父组件传入的内容</p>
</ChildComponent>

最终渲染结果会显示子组件的标题和父组件传入的段落。

具名插槽

通过 name 属性为插槽命名,实现多内容分发。
子组件示例:

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

父组件使用:

<ChildComponent>
  <template v-slot:header>
    <h4>头部内容</h4>
  </template>
  <template v-slot:body>
    <p>主体内容</p>
  </template>
</ChildComponent>

v-slot 可简写为 #,例如 #header

作用域插槽

子组件通过插槽向父组件传递数据,父组件决定如何渲染。
子组件示例:

<template>
  <div>
    <slot :item="itemData"></slot>
  </div>
</template>
<script>
export default {
  data() {
    return { itemData: { name: '示例数据' } };
  }
};
</script>

父组件使用:

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

具名作用域插槽需指定名称,例如 v-slot:body="props"

动态插槽名

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

<ChildComponent>
  <template v-slot:[dynamicSlotName]>
    <p>动态插槽内容</p>
  </template>
</ChildComponent>

dynamicSlotName 是父组件的动态变量。

插槽的默认内容

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

<slot>默认文本</slot>

插槽的高级应用

  • 渲染作用域:插槽内容在父组件作用域编译,但可访问子组件传递的数据。
  • 解构插槽 Prop:作用域插槽支持解构,例如 v-slot="{ item }"

通过合理使用插槽,可以构建高度可定制和复用的组件体系。

vue插槽实现功能

标签: 插槽功能
分享给朋友:

相关文章

vue实现功能插件

vue实现功能插件

Vue 插件实现方法 Vue 插件通常用于封装全局功能(如指令、过滤器、混入等),以下是实现 Vue 插件的典型方式: 插件基本结构 const MyPlugin = { instal…

前端实现拖拽功能vue

前端实现拖拽功能vue

使用 HTML5 拖放 API 在 Vue 中可以通过 HTML5 的原生拖放 API 实现拖拽功能。需要监听 dragstart、dragover 和 drop 事件。 <template&…

vue实现名字查找功能

vue实现名字查找功能

实现名字查找功能 在Vue中实现名字查找功能,可以通过多种方式完成。以下是几种常见的实现方法: 使用v-model和computed属性 创建一个输入框,使用v-model绑定输入的值,通过comp…

vue实现功能

vue实现功能

Vue 实现功能的方法 Vue.js 是一个流行的前端框架,用于构建用户界面。以下是几种常见的功能实现方法: 数据绑定 Vue 提供了双向数据绑定,可以通过 v-model 指令实现表单输入和应用状…

h5实现点击复制功能

h5实现点击复制功能

使用document.execCommand方法(兼容旧浏览器) 通过document.execCommand('copy')实现复制功能,需先选中文本内容。创建一个隐藏的textarea或input…

vue实现按钮实现点击功能

vue实现按钮实现点击功能

实现按钮点击功能 在Vue中实现按钮点击功能可以通过v-on指令或@缩写来绑定事件。以下是几种常见的实现方式: 使用v-on指令 通过v-on:click绑定点击事件,触发定义在methods中的…