vue之动态组件&插槽
1.动态组件
<!-- <component :is="who"></component>-->
<!-- component标签的is属性等于组件名字,这里就会显示这个组件-->
<!--keep-alive的使用:可以将组件缓存,后期切过来时资源不会被销毁-->
<!--动态组件start-->
<div id="trends">
<button @click="who='home'">首页</button>
<button @click="who='order'">订单</button>
<button @click="who='good'">商品</button>
<hr>
<keep-alive>
<component :is="who"></component>
</keep-alive>
</div>
<!--动态组件end-->
var home = {template: `<h1>首页</h1>`,}
var order = {template: `<div><h1>订单</h1> <input type="text"> <button>搜索</button></div>`,}
var good = {template: `<h1>商品</h1>`,}
let vm1 = new Vue({
el: "#trends",
data: {who: 'home'},
components: {home, order, good}
})
2.插槽
一般插槽
# 一般情况下,编写完1个组件之后,组件的内容都是写死的,需要加数据 只能去组件中修改,扩展性很差
# 然后就出现了插槽这个概念,只需在组件中添加<slot></slot>,就可以在body的组件标签中添加内容
# 使用步骤:
# 1 在组件的html的任意位置,放个标签
<slot></slot>
# 2 后期在父组件使用该组件时
<lqz>
放内容
</lqz>
# 3 放的内容,就会被渲染到slot标签中
具名插槽
# 使用步骤:
1 组件中可以留多个插槽,命名
<div>
<h1>我是一个组件</h1>
<slot name="middle"></slot>
<h2>我是组件内部的h2</h2>
<slot name="footer"></slot>
</div>
2 在父组件中使用时,指定某个标签渲染到某个插槽上
<lqz>
<div slot="footer">
我是div
</div>
<img src="https://scpic.chinaz.net/files/default/imgs/2023-05-12/23659b1edfc0a984.jpg" alt="" slot="middle">
</lqz>
<!--slot插槽start-->
<div id="insert">
<aque>
<div>一般插槽</div>
<div slot="footer">具名插槽</div>
</aque>
</div>
<!--slot插槽end-->
var aque = {template: `<div> <h1>第一行</h1><slot name="footer"></slot><h1>第二行</h1><slot ></slot> </div>`,}
let vm2 = new Vue({
el: '#insert',
components: {aque}
})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!