Vue-cli项目使用组件完成Tab标签页功能

本文介绍了一种使用Vue.js实现动态组件切换的方法。通过在初始状态下不指定具体组件标签,而是利用`:is`绑定当前组件变量的方式,实现了点击菜单项时组件的动态加载与渲染。这种方法不仅简化了代码结构,还提高了组件间的切换效率。

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

主要是通过组件自动渲染功能
在初始时,不使用具体的组件标签,而使用标签,通过:is绑定data种的current变量的数值来确定component显示的是哪个组件,在选项按钮中添加点击事件,当按钮点击时,将current的值修改为对应的组件的标签,即可将重新渲染。

这种做法,在修改component对应的标签值时,会重新渲染组件,也就是说,新的标签会在此时被加载,其生命周期会正常的重新开始执行,即从 create() -> mounted() -> …

<template>
    <div id="app">
        <div id="inner">
        <!--<connect></connect>-->
        <!--<nav-header></nav-header>-->
        <div id="nav-header">
            <el-menu class="el-menu-demo" mode="horizontal" background-color="#545c64" text-color="#fff" active-text-color="#ffd04b">
                <div class="logo">隧道系统</div>
                <el-menu-item index="1" @click="change('runTime')">实时温度分布</el-menu-item>
                <el-menu-item index="3" @click="change('realTime')">评估结果</el-menu-item>
                <el-menu-item index="4" @click="change('tempQuery')">温度查询</el-menu-item>
                <el-menu-item index="2" @click="change('tunnelFacility')">隧道设施</el-menu-item>
            </el-menu>
        </div>
        <div id="views" >
            <component :is="current"></component>
        </div>

        </div>
    </div>
</template>

<script>
    import HelloWorld from './components/HelloWorld'
    import connect from './components/connect'
    import chart from './components/echart'

    import navHeader from './views/header'
    import tunnelFacility from './views/tunnelFacility'
    import runTime from './views/runTimeView'
    import realTime from './views/realTimeView'
    import tempQuery from './views/temperatureQueryView'

    export default {
        name: 'App',
        data(){
            return{
                current:runTime,
            }
        },
        components: {
            HelloWorld,
            connect,
            chart,
            navHeader,
            tunnelFacility,
            runTime,
            realTime,
            tempQuery
        },
        methods:{
            change:function(tab){
                this.current = tab;
            }
        }
    }

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值