vue2与vue3中具名插槽使用异同

vue2与vue3中具名插槽使用异同

vue2插槽

定义插槽

bash 复制代码
<!-- 子组件 -->
<template>
  <div>
    <slot name="header"></slot>
  </div>
</template>

使用插槽(slot属性)

bash 复制代码
<!-- 父组件 -->
<template>
  <child-component>
    <template slot="header">
      <!-- 这里的内容将填充到 header 具名插槽 -->
    </template>
  </child-component>
</template>

vue3插槽

定义插槽

同vue2定义插槽。

使用插槽(v-slot指令

bash 复制代码
<!-- 父组件 -->
<template>
  <child-component>
    <template v-slot:header="headerProps">
      <!-- 名为header的具名插槽,并且插槽的作用域数据被绑定到headerProps变量上 -->
    </template>
  </child-component>
</template>

v-slot指令的简写形式,如下:

bash 复制代码
<template>
  <child-component>
    <template #header="headerProps">
      <!-- 这与上面的完整形式是等效的,#header是v-slot:header的简写 -->
    </template>
  </child-component>
</template>

异同总结

Vue3中引入了v-slot指令,它允许你更明确地指定插槽的内容。在Vue3中,你不再需要在标签上使用slot属性来指定插槽的名称,而是直接在内部使用v-slot指令,并指定插槽的名称。

当然,在Vue3中,仍然可以使用Vue2的语法,但是推荐使用新的v-slot指令,因为它提供了更清晰的语法和一些新特性,比如作用域插槽的改进。

相关推荐
明月_清风13 分钟前
模仿 create-vite / create-vue 风格写一个现代脚手架
前端·后端
aou14 分钟前
让表格式录入像 Excel 一样顺滑
前端·ai编程
前端付豪14 分钟前
必知 Express和 MVC
前端·node.js·全栈
重铸码农荣光15 分钟前
CSS 也能“私有化”?揭秘模块化 CSS 的防坑指南(附 Vue & React 实战)
前端·css·vue.js
南囝coding15 分钟前
CSS终于能做瀑布流了!三行代码搞定,告别JavaScript布局
前端·后端·面试
ccnocare16 分钟前
git 创建远程分支
前端
全栈王校长16 分钟前
Vue.js 3 项目构建神器:Webpack 全攻略
前端
1024小神16 分钟前
cloudflare+hono使用worker实现api接口和r2文件存储和下载
前端
Anita_Sun17 分钟前
Lodash 源码解读与原理分析 - Lodash 对象创建的完整流程
前端
米诺zuo17 分钟前
TypeScript 知识总结
前端