当前位置: 首页 > news >正文

Vue3插槽v-slot使用方式

在 Vue 3 中,v-slot 是用来定义和使用插槽的指令。插槽是 Vue 的一个功能,允许你在组件内部定义占位内容,便于在父组件中提供动态内容。以下是 v-slot 的详细使用方法:


1. 基础使用

<template><BaseComponent><template v-slot:default><p>这是默认插槽的内容</p></template></BaseComponent>
</template>

等价于:

<template><BaseComponent><p>这是默认插槽的内容</p></BaseComponent>
</template>

2. 具名插槽

具名插槽用于提供多个插槽,每个插槽有一个名字。

父组件:
<template><BaseComponent><template v-slot:header><h1>标题部分</h1></template><template v-slot:footer><p>底部内容</p></template></BaseComponent>
</template>
子组件:
<template><div><header><slot name="header"></slot></header><main><slot></slot></main><footer><slot name="footer"></slot></footer></div>
</template>

3. 简写语法

v-slot 提供了一种简写形式,用 # 替代 v-slot

<BaseComponent><template #header><h1>标题部分</h1></template><template #footer><p>底部内容</p></template>
</BaseComponent>

4. 作用域插槽

作用域插槽用于从子组件向父组件传递数据。

子组件:
<template><div><slot :user="user"></slot></div>
</template><script>
export default {data() {return {user: { name: '张三', age: 25 }};}
};
</script>
父组件:
<template><BaseComponent><template v-slot:default="slotProps"><p>用户名: {{ slotProps.user.name }}</p><p>年龄: {{ slotProps.user.age }}</p></template></BaseComponent>
</template>
简写形式:
<BaseComponent><template #default="{ user }"><p>用户名: {{ user.name }}</p><p>年龄: {{ user.age }}</p></template>
</BaseComponent>

5. 默认插槽的作用域

默认插槽也可以带作用域属性。

<BaseComponent><template #default="{ message }"><p>信息: {{ message }}</p></template>
</BaseComponent>

小结

  • v-slot 用于插槽定义,支持默认插槽、具名插槽和作用域插槽。
  • 使用 # 作为简写方式,能让代码更加简洁。
  • 作用域插槽 是一种强大的功能,可以让父组件使用子组件提供的数据。
http://www.lryc.cn/news/488460.html

相关文章:

  • Axure二级菜单下拉交互实例
  • 华为VPN技术
  • CommonsBeanutils与Shiro发序列化利用的学习
  • 运维云计算SRE-第2周
  • React Native 全栈开发实战班 - 用户界面进阶之响应式设计实践
  • SlickGrid点击/双击事件
  • 一文详细深入总结服务器选型
  • 一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)
  • CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回
  • shell编程规范和脚本变量
  • jspm美容院管理系统
  • Prometheus结合K8s(二)使用
  • 【虚幻引擎】UE5数字人开发实战教程
  • 深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 ros ubuntu20.04
  • Android:时间选择器(最下面有效果图)
  • 第十六届蓝桥杯模拟赛(第一期)-c++/c
  • 如何挑选路由器?需要看哪些参数?
  • mysql-备份(二)
  • Tailwind CSS 和 UnoCSS简单比较
  • unity3d————范围检测
  • 修改this.$confirm的按钮位置、图标、文字及标题
  • SQL MID() 函数详解
  • 【蓝桥杯备赛】123(前缀和的复杂应用)
  • MINES
  • H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来
  • uni-app快速入门(十一)--常用JS API(上)
  • Flink任务提交到yarn上slot数量为0的问题
  • vue3怎么根据字符串获取组件实例
  • ISUP协议视频平台EasyCVR私有化视频平台新能源汽车充电停车管理方案的创新与实践
  • 智领未来: 宏集物联网HMI驱动食品与包装行业迈向智能化新高度