vue 动态组件,适合作tab

Posted blccy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 动态组件,适合作tab相关的知识,希望对你有一定的参考价值。

动态组件可以切换组件

 

用component标签来封装组件 用 is注入,然后用<keep-alive></keep-alive> 包起来保持状态,就形成了动态组件,还是利用改变数据来渲染页面

 

例子

 

<body>
<div id="app">
<input type="button" value="切换到第1个组件" @click="tabComponent(1)" />
<input type="button" value="切换到第2个组件" @click="tabComponent(2)"/>
<input type="button" value="切换到第3个组件" @click="tabComponent(3)"/>
<keep-alive>
<component :is="current"></component>
</keep-alive>
 
</div>
<script>
/*动态组件*/

var custom1 = Vue.component("custom1",{
template:`<div @click="changeDivbg">我是第1个组件</div>`,
methods:{
changeDivbg(ev){
ev.target.style.background = "red";
}
}
});
var custom2 = Vue.component("custom2",{
template:`<div>我是第2个组件</div>`
})
var custom3 = Vue.component("custom3",{
template:`<div>我是第3个组件</div>`
})

new Vue({
el:"#app",
data:{
current:custom1
},
methods:{
tabComponent(index){
if(index === 1){
this.current = custom1
}else if(index === 2){
this.current = custom2
}else if(index === 3){
this.current = custom3
}
}
}
})

</script>
</body>

以上是关于vue 动态组件,适合作tab的主要内容,如果未能解决你的问题,请参考以下文章

vue3动态 tab(四)

vue-tab切换

vuetab按钮切换动态数据间隙按钮位置掉低的问题

第二十八篇 vue

vue -- 动态加载组件

VUE项目实战44渲染静态属性和动态参数的Tab