第二十八篇 vue - 深入组件 - 动态组件 - component

component

动态组件就是动态变化的组件,和动态样式一样,通过用户的操作来确定是什么类型的组件。动态样式是绑定:style,动态组件则是绑定:is

在 vue 中,实现 Tab 切换主要有三种方式:使用动态组件,使用 vue-router 路由,使用第三方插件。本文将详细介绍Vue动态组件

所谓动态组件就是让多个组件使用同一个挂载点,并动态切换

vue内置component组件, 配合is属性, 设置要显示的组件标签名字

is 用法

通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载点,并动态切换

根据 v-bind:is="组件名" 中的组件名去自动匹配组件,如果匹配不到则不显示

改变挂载的组件,只需要修改is指令的值即可

注意
1is只能是动态属性 :is="组件注册后的标签名字符串或data变量"
2、不能直接拿注册标签名赋值使用
示例
<!DOCTYPE html>
<html>
<head>
<title>Dynamic Components Example</title>
<script src="https://unpkg.com/vue"></script>
</head>
<body>
<div id="example">
<button @click="change">切换页面</button>
<component :is="currentView"></component>
</div>
<script>
const home = {
template: '<div>我是主页</div>'
};
const detail = {
template: '<div>我是详情页</div>'
};
const archive = {
template: '<div>我是存档页</div>'
};
new Vue({
el: '#example',
components: {
home,
detail,
archive,
},
data: {
index: 0,
arr: ['home', 'detail', 'archive'],
},
computed: {
currentView() {
return this.arr[this.index];
}
},
methods: {
change() {
this.index = (++this.index) % 3;
}
}
})
</script>
</body>
posted @   caix-1987  阅读(553)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示