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 相关文章推荐
Javascript 中 null、NaN和undefined的区别总结
Apr 10 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
Aug 09 Javascript
微信小程序 实现tabs选项卡效果实例代码
Oct 31 Javascript
JS实现自定义状态栏动画文字效果示例
Oct 12 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 Javascript
vue 项目 iOS WKWebView 加载
Apr 17 Javascript
微信小程序封装自定义弹窗的实现代码
May 08 Javascript
javascript中的数据类型检测方法详解
Aug 07 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
Dec 06 Javascript
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
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
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
js判断节假日实例代码
2017/12/27 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python的pycurl包用法简介
2015/11/13 Python
python实现视频分帧效果
2019/05/31 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
2020/04/21 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
python绘制汉诺塔
2021/03/01 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
道路交通安全实施方案
2014/03/12 职场文书
节约能源标语
2014/06/17 职场文书
国庆节新闻稿
2015/07/17 职场文书
Python 快速验证代理IP是否有效的方法实现
2021/07/15 Python