Vue 组件定时器翻倍执行问题解决

简介: Vue 组件定时器翻倍执行问题解决

Vue 项目一个页面有两个兄弟组件,分别是组件A和组件B

组件A的 mounted 中有一个 setInterval 定时器,从组件A切换到组件B,组件A中的 setInterval 还在运行,再次切换到组件A时,此时,定时器中的请求翻倍了...

解决方案 1:

setInterval 生成的 ID 号通过 sessionStorage 保存,组件B切换到A时,在 mounted 里面 setInterval 代码执行之前进行 sessionStorage 变量判断,如果存在数据,获取 setInterval ID 值,执行 window.clearInterval(ID)

这里只会处理定时器翻倍问题,不能彻底解决请求问题,切换 vue router 后,页面还有会定时器请求...

image.png

解决方案 2:

使用 Vue Router 的 beforeRouteLeave ,表示导航离开该组件的对应路由时调用此函数。实现如下

  ...
  mounted () {
    ...
  },
  beforeRouteLeave (to, from, next) {
    if (sessionStorage.getItem('getResoucesIntervalId')) {
      window.clearInterval(parseInt(sessionStorage.getItem('getResoucesIntervalId')))
    }
    next()
  },
  methods: {}
  ...

官方地址: router.vuejs.org/guide/advan…

相关文章
|
6天前
|
JavaScript 前端开发 安全
Vue响应式设计
【5月更文挑战第30天】Vue响应式设计
26 1
|
3天前
|
JavaScript API
vue组合式和选项式
vue组合式和选项式
4 2
|
5天前
|
JavaScript 程序员 网络架构
vue路由从入门到进阶 --- 声明式导航详细教程
vue路由从入门到进阶 --- 声明式导航详细教程
vue路由从入门到进阶 --- 声明式导航详细教程
|
5天前
|
资源调度 JavaScript UED
vue路由的基础知识总结,vueRouter插件的安装与使用
vue路由的基础知识总结,vueRouter插件的安装与使用
|
5天前
|
JavaScript
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
994 0
|
6天前
|
编解码 JavaScript API
Vue在移动端的表现如何?
【5月更文挑战第30天】Vue在移动端的表现如何?
13 2
|
6天前
|
JavaScript 前端开发 API
Vue与其他框架的对比优势
【5月更文挑战第30天】Vue与其他框架的对比优势
11 1
|
7天前
|
JavaScript
Vue常用知识点总结
Vue常用知识点总结
14 0
|
7天前
|
JavaScript Java 测试技术
基于vue和微信小程序的校园自助打印系统+springboot+vue.js附带文章和源代码设计说明文档ppt
基于vue和微信小程序的校园自助打印系统+springboot+vue.js附带文章和源代码设计说明文档ppt
28 7