Vue插槽详解
先看如下代码:
//app.vue <template> <div> <Child>
<span>小红</span>
</Child> </div> </template>
import Child from './child.vue'
<script>
components:{
Child
}
</script>
//child.vue
<template>
<div>
<span>小明<span>
</div>
</template>
渲染的界面只有小明,小红没渲染出来。
这个时候我们给child.vue一个<slot></slot>插槽
//child.vue
<template>
<div>
<span>小明</span>
<slot></slot>
</div>
</template>
小明和小红都渲染出来了,这就是插槽的作用
插槽是Vue实现的一套内容分发API,<slot>标签作为内容分发的出口,没有插槽的情况下,在组件内写内容是不会起作用的。
插槽目前分为三类:
匿名插槽(默认插槽):
如上:直接给一个slot默认的标签来分发内容,就是默认插槽
具名插槽:
通过name属性给插槽起一个名字,在填充内容时通过v-slot指令绑定插槽名字来匹配分发数据
//app.vue <template> <div> <Child>
<template v-slot:m>
很帅
</template> <span>小红</span>
<template v-slot:h>
很美
</template> </Child> </div> </template> import Child from './child.vue' <script> components:{ Child } </script>
//child.vue <template> <div> <span>小明</span> <slot name="m"></slot>
<slot></slot>
<slot name="h"></slot>
</div> </template>
作用域插槽:
可用于组件之间数据通信
//app.vue <template> <div> <Child> <template v-slot:default="slotProps">
//default是匿名插槽的默认名字
//slotProps是定义的一个接收数据的变量,{say:'hello'} {{slotProps.say}} //hello </template> </Child> </div> </template> import Child from './child.vue' <script> components:{ Child } </script>
//child.vue
<template>
<div>
<slot say="hello"></slot>
</div>
</template>
插槽基本用法就是这样,更多的应用还需要自己在实际项目中体会。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构