vue中的动态组件:使用is

本文介绍了Vue.js中如何使用`is`属性实现组件的动态切换。通过`component`元素配合`is`,可以方便地在运行时根据条件动态加载不同的组件。同时,还探讨了动态遍历组件的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.vue 可以通过 component 元素加一个特殊的 is 来实现组件的动态切换

html:

<ul class='tabs'>
    <li
        v-for='item in tabList'
        :key='item.name'
        :class='{actived: currentTab===item.value}'
        @click='changeTab(item)'
    >
        {{ item.name }}
    </li>
</ul>

<component :is='currentTab'></component>

js:

components: {
    DepartmentList, PersonList, TrainList,
},
data () {
    return {
        currentTab: 'department-list', // 默认选中部门管理
        tabList: [
            { name: '部门管理', value: 'department-list' },
            { name: '人员管理', value: 'person-list' },
            { name: '培训管理', value: 'train-list' },
        ],
    }
},
methods: {
	// 切换选中状态
    changeTab (row) {
        this.currentTab = row.value
    },
},

2.动态遍历组件

<component
    v-for='(item, index) in contentList'
    class='detail-box'
    :key='index'
    :is='item.name'
>
    <div class='box-angles'></div>
    <p class='box-title'>{{ item.title }}</p>
</component>
contentList: [
    { name: 'rank-list', title: '演练风云榜' },
    { name: 'drill-info', title: '演练信息' },
    { name: 'notice', title: '演练实时消息' },
    { name: 'result', title: '演练成果' },
],
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值