解决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 AutoComplete自动完成 的使用方法实例
Mar 19 Javascript
在JavaScript中获取请求的URL参数
Dec 22 Javascript
扩展JavaScript功能的正确方法(译文)
Apr 12 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
javascript工厂方式定义对象
Dec 26 Javascript
javascript中this的四种用法
May 11 Javascript
跟我学习javascript的垃圾回收机制与内存管理
Nov 23 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
浅谈Koa服务限流方法实践
Oct 23 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
Angular学习笔记之集成三方UI框架、控件的示例
Mar 23 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
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
javascript实现字符串反转的方法
2015/02/05 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
react-native 圆弧拖动进度条实现的示例代码
2018/04/12 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Pandas之read_csv()读取文件跳过报错行的解决
2020/04/21 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
python字典按照value排序方法
2020/12/28 Python
用CSS3绘制三角形的简单方法
2015/07/17 HTML / CSS
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
自我鉴定范文
2013/11/10 职场文书
丧事主持词大全
2014/04/02 职场文书
程序员求职信
2014/04/16 职场文书
授权委托书格式
2014/07/31 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
2015年派出所工作总结
2015/04/24 职场文书