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

Vue中的slot标签——插槽

1.基本概念

slot插槽是Vue中的一个重要功能,它允许我们向组件传递模板内容。父组件可以在使用子组件时,在子组件的标签内传入内容,这些内容会被渲染到子组件内部的slot标签内。

2.插槽类型

2.1 默认插槽

没有名字的插槽,每个组件只能有一个。

<template><div><slot></slot></div>
</template>

2.2 具名插槽

带有name属性的插槽,可以使用多个。使用template标签和v-slot指令来指定内容应该插入到那个具名插槽中,具名插槽默认情况下只解决“插槽往哪放”的问题。

/* 子组件定义的具名插槽 */
<div class="container"><header><slot name="header"></slot></header><main><slot></slot></main><footer><slot name="footer"></slot></footer>
</div>/* 父组件使用的具名插槽 */
<BaseLayout><template v-slot:header><h1>页面标题</h1></template><template v-slot:default><p>主要内容</p></template><template v-slot:footer><p>页脚内容</p></template>
</BaseLayout>

2.3 作用域插槽

能够接收子组件传递的数据的插槽。

/* 子组件传递数据 */
<slot :text="greetingMessage" :count="1"></slot>/* 父组件接收数据 */
<MyComponent v-slot="slotProps">{{ slotProps.text }} {{ slotProps.count }}
</MyComponent>

3. 插槽的特点

  1. 插槽内容可以访问到父组件的数据作用域
  2. 插槽的内容无法访问子组件的数据作用域(可以使用作用域插槽解决)

代码示例:

/* 父组件 */
<template><Child><!-- 插槽内容写在父组件中,作用域是父组件 --><p>{{ parentMessage }}</p></Child>
</template><script setup>
import { ref } from 'vue'
import Child from './Child.vue'const parentMessage = ref('Hello from parent')
</script>/* 子组件 */
<template><div><slot></slot></div>
</template><script setup>
const childMessage = ref('Hello from child') // 插槽内容访问不到这个
</script>

4.扩展:

v-slot统一语法糖,用来声明式地“接收”子组件通过 <slot> 暴露出来的数据
它把原来分散的 slot=""slot-scope="" 合并成一条指令。

总结:v-slot = “在父组件里给子组件的插槽起个名字,同时把子组件抛出来的数据接收”,并且具名插槽 + 作用域插槽可以实现传值和定位。

/* 子组件,具名插槽 + 作用域插槽 */
<slot name="header" :title="pageTitle"/>/* 父组件 */
<template #header="{title}">这里是标题:{{ title }}
</template>


文章转载自:

http://rxBo3SF9.rdnpg.cn
http://1pTT0KqJ.rdnpg.cn
http://bGqQeLQC.rdnpg.cn
http://ewIQ4qkh.rdnpg.cn
http://nLMn0hPp.rdnpg.cn
http://dgYjFLuu.rdnpg.cn
http://FhPHLXB6.rdnpg.cn
http://Af5WxEcb.rdnpg.cn
http://HIChhtMF.rdnpg.cn
http://r0mx6wLA.rdnpg.cn
http://FShaa5vQ.rdnpg.cn
http://QE9h9jmU.rdnpg.cn
http://2GhCiumw.rdnpg.cn
http://rUdKVA5f.rdnpg.cn
http://8sd7REwf.rdnpg.cn
http://EKCt9py2.rdnpg.cn
http://JoHMVA9m.rdnpg.cn
http://xXUS9c0T.rdnpg.cn
http://4YdaXMuE.rdnpg.cn
http://lKi239Er.rdnpg.cn
http://tfNJz9xk.rdnpg.cn
http://Q4ni2WU4.rdnpg.cn
http://gFSbcKCl.rdnpg.cn
http://bFdSGUNX.rdnpg.cn
http://apDKg5vG.rdnpg.cn
http://VnHyghVM.rdnpg.cn
http://SnMMbPcg.rdnpg.cn
http://QAqtH1F2.rdnpg.cn
http://wDkbezXF.rdnpg.cn
http://oy2USgAa.rdnpg.cn
http://www.dtcms.com/a/382693.html

相关文章:

  • k8s集群—node节点的删除与添加
  • k8s的dashboard
  • k8s-容器探针和生命周期回调学习
  • 跟上大数据时代步伐:食物营养数据可视化分析系统技术前沿解析
  • 大数据毕业设计选题推荐-基于大数据的结核病数据可视化分析系统-Hadoop-Spark-数据可视化-BigData
  • 全网首发! Nvidia Jetson Thor 128GB DK 刷机与测评(三)常用功能测评 DeepAnything 系列
  • Python快速入门专业版(二十六):Python函数基础:定义、调用与返回值(Hello函数案例)
  • 【系列文章】Linux中的并发与竞争[03]-自旋锁
  • Web前端面试题(1)
  • 海盗王客户端BMP纹理图片解密
  • FreeRTOS 知识点
  • Mac电脑上如何打印出字体图标
  • 2.2顺序表
  • 如何打造高效AI智能体工具
  • 2025智能制造研发效率提升指南:从“项目-流程-数据”闭环看工具选型
  • 【leetcode】5. 最长回文子串
  • 01trie
  • P4342 [IOI 1998] Polygon -普及+/提高
  • 13.ImGui-搭建内部绘制的ImGui项目框架(无消息循环的简单ImGui实例)
  • 工业互联网与数字孪生:解码产业数字化转型的核心支撑
  • 知识库内容冗余重复该怎么办
  • ScreenToGif:一款免费开源的屏幕录制与GIF制作工具
  • XHR与Fetch取消请求的方法及原理深度解析
  • 除了 transformer 还有哪些 新的 神经网络架构
  • 鸿蒙NEXT的Web组件网络安全与隐私保护实践
  • D. Coprime
  • 利用python pandas库清洗病例处方清洗步骤
  • 数据库在并发访问时,不同隔离级别下脏读幻读问题
  • Python核心技术开发指南(065)——with语句
  • Python核心技术开发指南(064)——析构方法