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

2.11组件之间的通信---插槽篇

1.认识插槽

  • 这个时候我们就可以来定义插槽 (slot):
    • 插槽的使用过程其实是抽取共性、预留不同;
    • 我们会将共同的元素、内容依然在组件内进行封装;
    • 同时会将不同的元素使用 slot 作为占位,让外部决定到底显示什么样的元素;
  • 如何使用 slot 呢?
    • Vue 中将 <slot> 元素作为承载分发内容的出口;
    • 在封装组件中,使用特殊的元素 <slot> 就可以为封装组件开启一个插槽;
    • 该插槽插入什么内容取决于父组件如何使用;

2.组件插槽-基本使用

3.组件插槽-具名插槽

事实上,我们希望达到的效果是插槽对应的显示,这个时候我们就可以使用 具名插槽:

  • 具名插槽顾名思义就是给插槽起一个名字,<slot> 元素有一个特殊的 attribute:name;
  • 一个不带 name 的 slot,会带有隐含的名字 default;

00.动态插槽名

什么是动态插槽名呢?

  • 目前我们使用的插槽名称都是固定的;
  • 比如 v-slot:left、v-slot:center 等等;
  • 我们可以通过 v-slot:[dynamicSlotName] 方式动态绑定一个名称;

00.具名插槽使用时候缩写

00.渲染作用域

在 Vue 中有渲染作用域的概念:

  • 父级模板里的所有内容都是在父级作用域中编译的;
  • 子模板里的所有内容都是在子作用域中编译的;

如何理解这句话呢?我们来看一个案例:

  • 在我们的案例中 ChildCpn 自然是可以访问自己作用域中的 title 内容的;
  • 但是在 App 中,是访问不了 ChildCpn 中的内容的,因为它们是跨作用域的访问;

00.独占默认插槽

00.默认插槽和具名插槽混合

4.组件插槽-作用域插槽

  • 当一个组件被用来渲染一个数组元素时,我们使用插槽,并且希望插槽中有显示每项的内容;
  • 这个 Vue 给我们提供了作用域插槽;

我们来看下面的一个案例:

  1. 在 App.vue 中定义好数据
  2. 传递给 ShowNames 组件中
  3. ShowNames 组件中遍历 names 数据
  4. 定义插槽的 prop
  5. 通过 v-slot:default 的方式获取到 slot 的 props
  6. 使用 slotProps 中的 item 和 index

例子二:


文章转载自:

http://kpoA5eSV.gmdtk.cn
http://Ctjk87gY.gmdtk.cn
http://wgh2yIOD.gmdtk.cn
http://IWXHeJ1m.gmdtk.cn
http://1CRXol73.gmdtk.cn
http://TiO3WVLn.gmdtk.cn
http://ehZjK8qh.gmdtk.cn
http://ca7BqLmf.gmdtk.cn
http://CC43zO3U.gmdtk.cn
http://tzFNAcnS.gmdtk.cn
http://OE5vhSEO.gmdtk.cn
http://zfADTChk.gmdtk.cn
http://BhopSDpa.gmdtk.cn
http://JDqu6moM.gmdtk.cn
http://jO7JGFVv.gmdtk.cn
http://AxucrS7Z.gmdtk.cn
http://IhyFrcEE.gmdtk.cn
http://Dm4gZQbQ.gmdtk.cn
http://drTxVLCh.gmdtk.cn
http://lu3E0kL2.gmdtk.cn
http://014m2DC1.gmdtk.cn
http://clCMe9N3.gmdtk.cn
http://ja5gqdxh.gmdtk.cn
http://pKrkX4z0.gmdtk.cn
http://BfJGsW88.gmdtk.cn
http://FOIMLv4o.gmdtk.cn
http://gxcQSPtS.gmdtk.cn
http://4CVIGTfQ.gmdtk.cn
http://T95sRzvz.gmdtk.cn
http://t7vVADXN.gmdtk.cn
http://www.dtcms.com/a/381532.html

相关文章:

  • 关于java中的String类详解
  • S3C2440 ——UART和I2C对比
  • TDengine 数据写入详细用户手册
  • 校园电动自行车管理系统的设计与实现(文末附源码)
  • HarmonyOS 应用开发深度解析:基于 ArkTS 的现代化状态管理实践
  • 【大语言模型 58】分布式文件系统:训练数据高效存储
  • [code-review] AI聊天接口 | 语言模型通信器
  • 力扣刷题笔记-删除链表的倒数第N个结点
  • 代码审计-PHP专题原生开发SQL注入1day分析构造正则搜索语句执行监控功能定位
  • dots.llm1:小红书开源的 MoE 架构大语言模型
  • --gpu-architecture <arch> (-arch)
  • uniapp动态修改tabbar
  • Spring Boot 集成 Flowable 7.1.0 完整教程
  • 教你使用服务器如何搭建数据库
  • Kafka如何配置生产者拦截器和消费者拦截器
  • uniapp:根据目的地经纬度,名称,唤起高德/百度地图来导航,兼容App,H5,小程序
  • 欧拉函数 | 定义 / 性质 / 应用
  • 【更新至2024年】1996-2024年各省农业总产值数据(无缺失)
  • 财报季观察|消费“分野”,燕之屋(1497.HK)们向上生长
  • 机械制造专属ERP:降本增效与数字转型的关键
  • 基于node.js+vue的医院陪诊系统的设计与实现(源码+论文+部署+安装)
  • 【大语言模型 59】监控与日志系统:训练过程全面监控
  • HIS架构智能化升级编程路径:从底层原理到临床实践的深度解析(下)
  • Node.js中package.json详解
  • 当AI遇上数据库:Text2Sql.Net如何让“说人话查数据“成为现实
  • 数据结构8——双向链表
  • 问卷系统自动化测试报告
  • Python 的函数柯里化(Currying)
  • 渗透测试信息收集详解
  • 【连载3】C# MVC 异常日志进阶:结构化日志与性能优化技巧