Vue 插槽 父组件向子组件 传html结构
一、作用
父组件可以向子组件指定位置插入html结构,也是一种通信方式,适用于 父组件=>子组件
二、分类
默认插槽、具名插槽(有具体名字的插槽)、作用域插槽
三、使用方式
1、默认插槽
父组件
<Category title="美食" >
<ul>
<li v-for="data,index in foods" :key="index"> {{data}}</li>
</ul>
</Category>
子组件 Category.vue文件中
<template> <div class="category"> <h3>{{title}}分类</h3> <!-- 定义默认插槽,用来接收父组件传递的html结构 --> <slot>插槽默认内容</slot> </div> </template>
2、具名插槽
场景:父组件向子组件插入多个html结构,需要具名插槽
子组件:命名插槽,关键字name
父组件:使用插槽,slot=子组件的插槽名,最好用<template></template>包裹,不影响结构
-----------
父组件
<!-- 父组件 --> <template slot="center"> <ul> <li v-for="data,index in foods" :key="index"> {{data}}</li> </ul> </template> <template slot="footer"> <a href="https://www.baidu.com">百度一下</a> </template>
子组件
<template> <div class="category"> <h3>{{title}}分类</h3> <!-- 定义默认插槽,用来接收父组件传递的html结构 --> <slot name="center">插槽默认内容ul li</slot> <slot name="footer">插槽内容 a 标签</slot> </div> </template>
3、作用域插槽
场景:父组件向子组件传递html结构,html结构需要使用数据,但是数据在子组件里,需要使用作用域插槽实现
子组件在slot中 动态绑定值 :test="test"
父组件想要插入的html 外包的 <template scop="xx"></template>,xx是定义的值,获取值需要通过xx.test 或 scop="{test}"
父组件
<Category title="美食" > <!-- 父组件 --> <!-- 接收值第一种方法 --> <template scope="abc"> <ul> <li v-for="data,index in abc.foods" :key="index"> {{data}}</li> </ul> </template> </Category> <Category title="美食" > <!-- 父组件 --> <!-- 接收值第二种方法--> <template scope="{foods}"> <ul> <li v-for="data,index in foods" :key="index"> {{data}}</li> </ul> </template> </Category>
子组件
<template> <div class="category"> <h3>{{title}}分类</h3> <!-- 定义默认插槽,用来接收父组件传递的html结构 --> <slot :foods="foods">插槽默认内容ul li</slot> </div> </template>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2020-01-06 java 语句流程