之所以将这个问题列在排坑记之中,是因为官方组件的一个属性颇有些隐蔽,这个问题曾经折腾了本人较多时间,始终思维固着,且使用搜索引擎也不容易搜索到答案,故记之。然而实际解决却是相当简单的。

一、问题描述

在element UI的tabs组件中,假设需要在tab切换时执行某个函数,有什么方案?

二、问题举例

有两个tab,tab1和tab2,两个tab都有一个el-select组件,分别是el-select1和el-select2。el-select1和el-select2绑定了同一个字段,但是两者的下拉选项不相同。在切换tab时将导致以下问题:

1. 显示tab1中内容时,a的值是el-select1中某一下拉选项的值,但这个值在el-select2中不存在;反过来切换也是一样。
2. 这将使得切换tab时,el-select1或者el-select2中出现错误的下拉选项。

三、常用误区:通过事件解决

最容易想到的是采用tab-clik事件,但它的两个回调参数无法获取到切换前的tab实例,因此无法判断是否发生了tab切换。

四、解决方案:

采用before-leave钩子,它是el-tabs的一个一个属性,注意是属性而不是事件。给该属性绑定一个函数,则在触发tab切换时将执行绑定的函数。该钩子将在tab-clik之前执行。

它和tab-click的区别可总结如下:
1. tab-click在点击tab时就会触发,不论是否切换tab。
2. before-leave只在tab切换时触发。
3. 两者都触发时,before-leave先触发。

五、代码案例

      <el-tabs :before-leave='leaveTab'>
<el-tab-pane label="主合同" name="False"></el-tab-pane>
<el-tab-pane label="子合同" name="True"></el-tab-pane>
</el-tabs> leaveTab(activeName, oldActiveName) {
// do something
},
```

element UI排坑记(一):判断tabs组件是否切换的更多相关文章

  1. 表单编辑时el-form的validate方法执行无效,阻塞代码运行 - Element UI踩坑记录

    今天在用element-ui写管理后台需求时,遇到一个奇怪的问题 一个正常带校验的表单,在新增列表数据时表单校验功能正常: 但是在新增之后再去编辑数据时,表单校验却失效了,甚至阻塞了后续的代码执行,控 ...

  2. Selenium踩坑记之iFrame的定位与切换

    转自:https://www.jianshu.com/p/6e7d0359e4bb Selenium是浏览器自动化测试的工具之一,用过的人都懂他的好,也被他坑的不要不要的.今天就聊聊Selenium的 ...

  3. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  4. [坑况]饿了么你是这样的前端——vue+element ui 【this dependency was not found:'element-ui/lib/theme-chalk/index.css'】

    element ui 坑况:今日pull代码,潇洒npm run dev ,被告知:this dependency was not found:'element-ui/lib/theme-chalk/ ...

  5. vue与element ui的el-checkbox的坑

    一,场景 通过使用checkbox,实现如图的场景, 点击某个tag,实现选中和非选中状态. 二, 官网的例子 通过切换checked值为true或者false来实现,一个checkbox的状态切换 ...

  6. 【转】Vue 脱坑记 - 查漏补缺(汇总下群里高频询问的xxx及给出不靠谱的解决方案)

    前言 文章内容覆盖范围,芝麻绿豆的破问题都有,不止于vue; 给出的是方案,但不是手把手一字一句的给你说十万个为什么! 有三类人不适合此篇文章: “喜欢站在道德制高点的圣母婊” – 适合去教堂 “无理 ...

  7. Vue 脱坑记

    问题汇总 Q:安装超时(install timeout) 方案有这么些: cnpm : 国内对npm的镜像版本 /* cnpm website: https://npm.taobao.org/ */ ...

  8. element ui 中的 resetFields() 报错'resetFields' of undefined

    每次做各种form表单时,首先要注意的是初始化,但是刚开始若没有仔细看文档,则会自己写个方法将数据设置为空,但是这样就会出现一个问题,表单内存在各种验证,假如是一个弹框内有form表单,弹框出现就执行 ...

  9. WinUI 3 踩坑记:从创建项目到发布

    本文是 WinUI 3 踩坑记 的一部分,该系列发布于 GitHub@Scighost/WinUI3Keng,若内容出现冲突以 GitHub 上的为准. 创建项目 现在 WinUI 3 的入门体验比刚 ...

随机推荐

  1. 1053 Path of Equal Weight (30分)(并查集)

    Given a non-empty tree with root R, and with weight W​i​​ assigned to each tree node T​i​​. The weig ...

  2. IIS 组成

    HTTP.sys      http.sys 侦听来自网络的 HTTP 请求,将它们传递到 IIS 并返回响应. 它是一种可以从命令行停止和启动的服务.      "NET STOP HTT ...

  3. MyBatis(六):SqlSession执行源码分析

    SqlSession执行源码分析 针对以下代码 public class MybatisUtils { private static SqlSessionFactory sqlSessionFacto ...

  4. javascript入门 之 bind()

    <!DOCTYPE html> <HTML> <HEAD> <meta http-equiv="content-type" content ...

  5. [ddt02篇]十年测试老鸟帮您解析:ddt结合txt,excel,csv,mysql实现自动化测试数据驱动

    一.前言: 阅读此文之前请先阅读: [ddt01篇]十年测试老鸟帮您解析:ddt数据驱动入门基础应用:https://www.cnblogs.com/csmashang/p/12679448.html ...

  6. Vue-router 第10节 路由中的钩子

    Vue-router 第10节 路由中的钩子 [TOC] 第10节 路由中的钩子 我们知道一个组件从进入到销毁有很多的钩子函数,同样在路由中也设置了钩子函数.路由的钩子选项可以写在路由配置文件中,也可 ...

  7. http的请求头都有那些信息

    每个HTTP请求和响应都会带有相应的头部信息.默认情况下,在发送XHR请求的同时,还会发送下列头部信息: Accept:浏览器能够处理的内容类型 Accept-Charset:浏览器能够显示的字符集 ...

  8. Linux c++ vim环境搭建系列(3)——Ubuntu18.04.4编译安装youcompleteme

    3. youcompleteme编译安装 参考网址: https://github.com/ycm-core/YouCompleteMe#linux-64-bit 建议不要用这个博客的方法: http ...

  9. AJ学IOS 之二维码学习,快速打开相机读取二维码

    AJ分享,必须精品 上一篇文章写了怎么生成二维码,这儿就说说怎么读取吧,反正也很简单,iOS封装的太强大了 步骤呢就是这样: 读取二维码需要导入AVFoundation框架#import <AV ...

  10. 【Java】Operator 运算符/操作符

    Operator 运算符/操作符 什么是操作符? 一个表示特定的数学或逻辑操作的符号 算术运算符 加 + 减 - 乘 * 除 / 取模 % 前置自运算 ++ a .--b 后置自运算 a++ .b-- ...