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 相关文章推荐
jQuery fadeOut 异步实例代码详解
Aug 18 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
Bootstrap源码解读导航条(7)
Dec 23 Javascript
详解angularjs结合pagination插件实现分页功能
Feb 10 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
vue观察模式浅析
Sep 25 Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 Javascript
JS正则表达式验证端口范围(0-65535)
Jan 06 Javascript
vue如何在项目中调用腾讯云的滑动验证码
Jul 15 Javascript
js实现全选和全不选功能
Jul 28 Javascript
js 实现验证码输入框示例详解
Sep 23 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
Access数据库导入Mysql的方法之一
2006/10/09 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
js自定义input文件上传样式
2018/10/26 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
python保存字符串到文件的方法
2015/07/01 Python
简述Python2与Python3的不同点
2018/01/21 Python
python模块导入的细节详解
2018/12/10 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
python使用建议与技巧分享(二)
2020/08/17 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
大专毕业生自我评价分享
2013/11/10 职场文书
初一生物教学反思
2014/01/18 职场文书
新学期家长寄语
2014/01/19 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js
vue3不同环境下实现配置代理
2022/05/25 Vue.js