Vue切换Tab动态渲染组件

使用<component :is="组件名"></component>

结合Element-UI的导航菜单 :

  • UI组件

    • el-menu-item里的index写对应的组件名
    • 点击事件@select="handleSelect"
    <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
        <el-menu-item index="Home">首页</el-menu-item>
        <el-menu-item index="About">关于我们</el-menu-item>
    </el-menu>
    <component :is="activeIndex"></component>
    
  • 在点击事件里动态设置组件名

    handleSelect(index) {
       this.activeIndex = index
    }
    

完整代码

	<template>
	  <div id="app">
	    <!-- 导航栏 -->
	    <el-row class="home_nav" type="flex" justify="flex-start" align="middle">
	      <el-col :span="2" :offset="4">
	        <div>LOGO</div>
	      </el-col>
	      <el-col :span="12">
	        <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
	          <el-menu-item index="Home">首页</el-menu-item>
	          <el-menu-item index="About">关于我们</el-menu-item>
	        </el-menu>
	      </el-col>
	    </el-row>
	    <component :is="activeIndex"></component>
	  </div>
	</template>
	
	<script>
	import Home from './components/Home.vue'
	import About from './components/About.vue'
	
	export default {
	  name: 'app',
	  components: {
	    Home,
	    About
	  },
	  data(){
	    return {
	      activeIndex: "Home"
	    }
	  },
	  methods: {
	    handleSelect(index) {
	      this.activeIndex = index
	    }
	  }
	}
	</script>
	<style>
	</style>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值