Vue切换Tab动态渲染组件的操作


Posted in Javascript onSeptember 21, 2020

使用<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>

补充知识:vue 动态组件(tabs切换)keep-alive:主要用于保留组件状态或避免重新渲染

通过keep-alive 保留数据值 填写数据时切换到其他页面,后返回当前页数据保留 ,主要用于保留组件状态或避免重新渲染

<!--动态组件-component使用-->
 <div class="app">
 <ul>
  <li @click="currView='home'">首页</li>
  <li @click="currView='abount'">关于我们</li>
 </ul>
 <!--通过keep-alive 保留数据值 填写数据时切换到其他页面,后返回当前页数据保留-->
 <keep-alive>
  <component :is="currView"></component>
 </keep-alive>
 </div>
<script type="text/x-Template" id="homeTemp">
   <h2>首页数据</h2>
</script>
<script type="text/x-Template" id="abountTemp">
   <h2>关于我们数据<input type="text"/></h2>
</script>
<script type="text/javascript">
 var vm=new Vue({
  el:'.app',
  data:{
   currView:"home"
  },
  components:{
   "home":{
     template:"#homeTemp"
   },
   "abount":{
    template:"#abountTemp"
   }
  }
 });
 
</script>

Vue切换Tab动态渲染组件的操作

以上这篇Vue切换Tab动态渲染组件的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
Oct 30 Javascript
JavaScript中用于生成随机数的Math.random()方法
Jun 15 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
js实现楼层效果的简单实例
Jul 15 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
使用3D引擎threeJS实现星空粒子移动效果
Sep 13 Javascript
Vue resource三种请求格式和万能测试地址
Sep 26 Javascript
JS中封装axios来管控api的2种方式
Sep 11 Javascript
node实现mock-plugin中间件的方法
Dec 25 Javascript
js实现购物车商品数量加减
Sep 21 #Javascript
vue打开子组件弹窗都刷新功能的实现
Sep 21 #Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 #Javascript
vue大型项目之分模块运行/打包的实现
Sep 21 #Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 #Javascript
JS实现小米轮播图
Sep 21 #Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 #Javascript
You might like
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
aspx中利用js实现确认删除代码
2010/07/22 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
Express.JS使用详解
2014/07/17 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JavaScript实现广告弹窗效果
2016/08/09 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
基python实现多线程网页爬虫
2015/09/06 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
计算机应用应届生求职信
2014/07/12 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
单位实习工作证明怎么写
2014/11/02 职场文书
2015年幼儿园德育工作总结
2015/05/25 职场文书
Spring Bean是如何初始化的详解
2022/03/22 Java/Android