vue 动态组件

  • 动态组件就是几个组件放在一个挂载点下,然后根据父组件的某个变量来决定显示哪个,或者都不显示。
  • 在挂载点使用 component 标签,然后使用 is =“组件名”,它会自动去找匹配的组件名,如果有,则显示;
<template>
    <div>
        <button v-for="(tab,index) in tabs" @click="tabIndex=index">
            {{ tab }}
        </button>
        <component :is="change"></component>
    </div>
</template>

<script>
export default {
    data(){
        return {
            tabIndex: 0,
            tabs: ['线路一','线路二','线路三'],
            statu: ['lineOne','lineTwo','lineThr']
        }
    },
    components:{
        lineOne: {template: '<div>我是线路一</div>'},
        lineTwo: {template: '<div>我是线路二</div>'},
        lineThr: {template: '<div>我是线路三</div>'}
    },
    computed: {
        change() {
            return this.statu[this.tabIndex]
        }
    }
}
</script>

以上代码注册了三个组件,通过点击按钮改变tabIndex的值,告诉component显示哪个组件,实现了动态切换。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容