问题描述

element-admin中使用tab切换到不同的路由,发现每次切换tab路由都会执行两次生命周期

<tabs:tabs="tabs"v-model="activeName"@on-switch="handleSwitch"
><components :is="activeName"></components>
</tabs>

问题分析

Vue官网上提供了一个动态组件 <component :is="currentTabComponent"> ,可以使用is动态切换组件,切换组件后组件会立即开始一个生命周期,然后路由跟着变化了,路由变化后又引发了页面重新渲染,所以会出现created中的方法执行两次的问题。解决方法就是将动态组件放到一个<router-view>组件中,这样切换tab后就根据匹配的路由渲染页面了。

问题解决

使用<router-view>将动态组件包起来,这样每次切换都重新渲染一次。

<tabs:tabs="tabs"v-model="activeName"@on-switch="handleSwitch"
><router-view><components :is="activeName"></components></router-view>
</tabs>

备注

<router-view> 组件是一个 functional 组件,渲染路径匹配到的视图组件。<router-view> 渲染的组件还可以内嵌自己的 <router-view>,根据嵌套路径,渲染嵌套组件。

因为它也是个组件,所以可以配合 <transition><keep-alive> 使用。如果两个结合一起用,要确保在内层使用 <keep-alive>

<transition><keep-alive><router-view></router-view></keep-alive>
</transition>

vue切换tab更新路由created执行两次相关推荐

  1. idea2020.1版本的maven项目报包不存在,找不到包错误,解决更新数据库执行两次的问题。

    文章目录 错误描述 解决办法: 总结(这个方法会执行两次操作) 解决更新数据库出现两次的情况 解决办法 pom.xml下的build标签 错误描述   idea创建maven项目,导入依赖都是成功的, ...

  2. VUE 返回上一页 不刷新页面、重复进入同一页面created重复执行、每次进入页面时都执行created、vue单页面多路由,前进刷新,返回不刷新

    每次进入页面时都执行created.前进刷新,返回不刷新 思路: 利用 keep-alive与vue-router配合使用 ,判断哪些页面需要每次进入刷新,哪些页面不需要每次进入刷新: keepAli ...

  3. 【Vue实用功能】Vue实现tab页多页面切换

    Vue实现tab页多页面切换 实现路由发生变化时,新增一个tab标签页,点击其他标签时切换到对应的页面,刷新网页同时保留状态 这里就直接说它实现的代码就OK!!! VueX记录下每次新增后的tab标签 ...

  4. vue实现Tab切换功能

    在项目开发中,我们经常会碰到Tab切换的功能,而在Vue中想实现这样的功能也应该有很多种,常用的三种应该是 Tab路由切换.Tab动态组件切换.通过v-show设置Tab显示隐藏.每种方法实现起来其实 ...

  5. vue created 调用方法_深入解析 Vue 的热更新原理,偷学尤大的秘籍?

    大家都用过 Vue-CLI 创建 vue 应用,在开发的时候我们修改了 vue 文件,保存了文件,浏览器上就自动更新出我们写的组件内容,非常的顺滑流畅,大大提高了开发效率.想知道这背后是怎么实现的吗, ...

  6. vue中tab切换前端实现_vue实现Tab切换功能

    在项目开发中,我们经常会碰到Tab切换的功能,而在Vue中想实现这样的功能也应该有很多种,常用的三种应该是 Tab路由切换.Tab动态组件切换.通过v-show设置Tab显示隐藏.每种方法实现起来其实 ...

  7. 使用vue-i18n切换中英文-网页语言切换案例-vue文件中或路由(Router)文件中使用

    vue-i18n地址 安装 npm install vue-i18n 使用 在 main.js 中引入 vue-i18n (前提是要先引入 vue) import VueI18n from 'vue- ...

  8. vue中tab切换前端实现_使用vue实现tab操作

    tab功能在网页中是比较常见的,那么用vue怎么实现tab操作呢,与jQuery实现tab的思路有什么区别呢? 在使用jQuery类库实现tab功能时,是获取鼠标在mousenter或click时的i ...

  9. uni-app小程序onShow执行两次;微信小程序onShow重复执行原因;导航栏tabBar页的onLoad函数不执行;App.vue页的onShow执行原因;onShow莫名其妙执行

    1.只有五种情况会触发导航栏tabBar页的onLoad函数,分别是: –1.1:首次进入到导航栏tabBar页面: –1.2:从微信分享进入的导航栏tabBar页面: –1.3:识别二维码跳转到小程 ...

最新文章

  1. 自我监督学习:AI技术的未来发展方向
  2. mysql proxy 延迟严重_使用MySQL Proxy解决MySQL主从同步延迟
  3. 产品策略研究期的数据分析与挖掘
  4. 用了10年的微信表情,它居然偷偷把烟给戒了...
  5. 一款简洁大气的jquery日期日历插件
  6. 上古时期的 TeX Users 都有哪些当今 TeX Users 无法想象的神级操作?
  7. windows怎么用gpu跑python程序_在GPU(windows)上运行Theano的命令
  8. 是可改写的随机存储器_PPT下载:磁阻随机存取存储器
  9. 万源之源之drupal7
  10. 互利网上数字金融典型场景: 消费金融
  11. 剑指offer面试题[15]-链表中倒数第K个结点
  12. Python+vue设计并实现了宾馆酒店客房管理系统django flask
  13. ckplayer网页播放器简易教程
  14. 2535: [Noi2010]Plane 航空管制2
  15. 先手获胜逻辑题_最获胜的A / B测试结果是否令人误解?
  16. 比较出名的几种美国主机
  17. 《深度学习》/《Deep Learning》——深度学习圣经的读书笔记
  18. css选择器,什么是css选择器
  19. offsetLeft理解以及MouseEvent接口中的screenX,clientX,pageX,offsetX区别.
  20. roboware安装包

热门文章

  1. 岚图卖不动,到底谁的锅?
  2. 分区数据恢复之ubuntu13.10格式化整个硬盘
  3. 单片机实验三(1):中断处理,定时器
  4. 英语四六级及考研语法(学习方法)
  5. 小程序--语音合成tts 对接多平台(讯飞,思必驰,百度)
  6. 【学习笔记】STC校验子格编码 syndrome-trellis code
  7. 在广州找前端开发实习经验分享2
  8. Jenkins 添加Allure报告 并发送企业微信通知
  9. error[E0308]: Rust 闭包函数锁定参数类型
  10. 怎么下载央视网的视频到本地?