解决vue中el-tab-pane切换的问题


Posted in Javascript onJuly 19, 2020

今天在编写vue的时候用到了el-tabs,然后遇到切换的时候,在次打开el-dialog还是上次的状态(因为两次打开的el-tab-pane数量不一样,就出现了问题)

如下:

解决vue中el-tab-pane切换的问题

第一次打开时的状态,打开到第二次的时候

解决vue中el-tab-pane切换的问题

解决方法

给el-tab-pane命名

<el-tabs type="border-card" v-model="activeName" ></el-tabs>

在script中

data() {
  return {
  isShow: '',
  activeName:'second'
  }
 },

在每次关闭弹框的时候,在关闭方法中重置activeName

activeName='second'

补充知识:vue + element-ui 制作tab切换(切换vue组件,踩坑总结)

项目中用到了一个页面要实现tab切换实现报表展示,自行百度了一下;最后实现效果,在这里把步骤分享给大家!

创建文件:

tabZujian.vue

<template>
  <div class="tabZujian">
    <el-tabs v-model="activeName">
      <el-tab-pane label="tab1" name="first" :key="'first'">
        <child1></child1>
      </el-tab-pane>
  
      <el-tab-pane label="tab2" name="second" :key="'second'">
        <child2></child2>  
      </el-tab-pane>
    </el-tabs>
    
  </div>
</template>
 
<script>
import tabZujianChild1 from '@/tabComponents/tabZujianChild1'
import tabZujianChild2 from '@/tabComponents/tabZujianChild2'
export default {
  name: 'tabZujian',
  components:{
    child1:tabZujianChild1,
    child2:tabZujianChild2
  },
  data() {
    return {
      //默认第一个选项卡
      activeName: "first",
    }
  },
  mounted(){
    
  }
}
</script>

tabZujianChild1.vue

<template>
  <div class="child1">
    我是第一个自组件
  </div>
</template>
<script>
  export default {
   name: 'child1',
   mounted(){
     console.log("tab1组件")
   }
  }
</script>

tabZujianChild2.vue

<template>
  <div class="child2">
    我是第二个子组件
  </div>
</template>
 
<script>
  export default {
   name: 'child1',
   mounted(){
     console.log("tab2组件")
   }
  }
</script>

解决vue中el-tab-pane切换的问题

问题解决:

其实这个问题解决起来非常简单,我们想要的是每次切换tab都能够让对应的tab子组件进行重新渲染。

初始化两个变量 isChildUpdate1:true,isChildUpdate2:false;

使用v-if控制child1和child2是否渲染。

每次切换tab选项的时候,触发事件。让当前点击的tab变量设置位true,让当前组件重新渲染。

这时候当你来回切换的时候,通过v-if判断是否重新渲染当前组件

更改一下tabZujian.vue

<template>
  <div class="tabZujian">
    
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-tab-pane label="tab1" name="first" :key="'first'">
        <child1 v-if="isChildUpdate1"></child1>
      </el-tab-pane>
  
      <el-tab-pane label="tab2" name="second" :key="'second'">
        <child2 v-if="isChildUpdate2"></child2>  
      </el-tab-pane>
    </el-tabs>
    
  </div>
</template>
 
<script>
import tabZujianChild1 from '@/tabComponents/tabZujianChild1'
import tabZujianChild2 from '@/tabComponents/tabZujianChild2'
export default {
  name: 'tabZujian',
  components:{
    child1:tabZujianChild1,
    child2:tabZujianChild2
  },
  data() {
    return {
      //默认第一个选项卡
      activeName: "first",
      isChildUpdate1:true,
      isChildUpdate2:false
    }
  },
  mounted(){
    
  },
  methods:{
    handleClick(tab) {
      if(tab.name == "first") {
        this.isChildUpdate1 = true;
        this.isChildUpdate2 = false;
      } else if(tab.name == "second") {
        this.isChildUpdate1 = false;
        this.isChildUpdate2 = true;
      }
    }
  }
}
</script>

最后成功了。

以上这篇解决vue中el-tab-pane切换的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
翻译整理的jQuery使用查询手册
Mar 07 Javascript
javaScript 读取和设置文档元素的样式属性
Apr 14 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 Javascript
JavaScript简单下拉菜单特效
Sep 13 Javascript
AngularJS 自定义过滤器详解及实例代码
Sep 14 Javascript
a标签置灰不可点击的实现方法
Feb 06 Javascript
谈谈对vue响应式数据更新的误解
Aug 01 Javascript
setTimeout时间设置为0详细解析
Mar 13 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
vue.js实现双击放大预览功能
Jun 23 Javascript
js实现贪吃蛇游戏(简易版)
Sep 29 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
Jul 19 #Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 #Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 #Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
Jul 19 #Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
Jul 19 #Javascript
完美解决vue 中多个echarts图表自适应的问题
Jul 19 #Javascript
vue实现多个echarts根据屏幕大小变化而变化实例
Jul 19 #Javascript
You might like
laravel 4安装及入门图文教程
2014/10/29 PHP
php数组查找函数总结
2014/11/18 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
详解百度百科目录导航树小插件
2017/01/08 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
Vue+SpringBoot开发V部落博客管理平台
2017/12/27 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
对于Python装饰器使用的一些建议
2015/06/03 Python
Python Requests 基础入门
2016/04/07 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Python格式化日期时间操作示例
2018/06/28 Python
django框架模板语言使用方法详解
2019/07/18 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
谈谈python垃圾回收机制
2020/09/27 Python
python图片合成的示例
2020/11/09 Python
python Scrapy框架原理解析
2021/01/04 Python
python实现图片转字符画的完整代码
2021/02/21 Python
项目经理的岗位职责
2013/11/23 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
委托培训协议书
2014/11/17 职场文书
保研专家推荐信范文
2015/03/25 职场文书
2015年社区工作总结
2015/04/08 职场文书
开工典礼致辞
2015/07/29 职场文书
2019入党申请书格式
2019/06/25 职场文书
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android