vue中销毁定时器的几种解决方案

 更新时间:2023年08月18日 10:05:19   作者:ldcaws  
这篇文章主要给大家介绍了关于vue中销毁定时器的几种解决方案,销毁定时器的操作一般是在beforeDestroy钩子中进行,根据定时器的数量不同可以有多种解决方法,需要的朋友可以参考下

引言

vue是单页面应用,路由切换后,定时器并不会自动关闭,需要手动清除,当页面被销毁时,清除定时器即可。

场景:在A.vue页面有一个定时a,然后跳转到B.vue页面,此时A页面的定时器a依然在运行。

解决方式一:

  • 首先在data里进行定义定时器;
data() {                   
  return {                                          
   timer: null  // 定时器名称                 
  }         
},
  • 然后在mounted里使用定时器;
this.timer= setInterval(() => {
	  // 操作
      method();
    }, 60000);
  • 最后在beforeDestroy里清除定时器;
beforeDestroy() {
    if (this.timer) {
      clearInterval(this.timer);
    }
  },

解决方式二:

通过$once这个事件侦听器在定义完定时器之后的位置来清除定时器。

    this.timer= setInterval(() => {
      // 操作
      method();
    }, 60000);
    // 通过$once来监听定时器,在beforeDestroy钩子可以被清除
    this.$once('hook:beforeDestroy', () => {
      clearInterval(this.timer);
    })

解决方式三:

beforeRouteLeave(to, from, next){
    next();
    if (this.timer) {
      clearInterval(this.timer);
      this.timer = null;
    }
  },

附:vue离开页面时清除定时器

let timer = setInterval(function(){
	console.log("我是定时器=====");
},2000);
this.$once("hook:beforeDestroy", () =>{
    clearInterval(timer);
});

总结 

到此这篇关于vue中销毁定时器的几种解决方案的文章就介绍到这了,更多相关vue销毁定时器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3中的defineExpose函数用法深入解析

    Vue3中的defineExpose函数用法深入解析

    这篇文章主要介绍了Vue3中的defineExpose函数用法的相关资料,defineExpose是Vue3中用于在模式下暴露组件内部属性和方法的辅助函数,它允许父组件通过ref访问子组件的暴露内容,提高组件间的交互能力并保持封装性,需要的朋友可以参考下
    2025-01-01
  • vue elementui select标签监听change事件失效问题

    vue elementui select标签监听change事件失效问题

    这篇文章主要介绍了vue elementui select标签监听change事件失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Vue3使用sessionStorage保存会话数据的实现方式

    Vue3使用sessionStorage保存会话数据的实现方式

    在前端开发中,我们常常需要在用户会话期间保存一些数据,这些数据在页面刷新或导航时依然需要存在,sessionStorage 是一种非常方便的方式来实现这一点,在这篇文章中,我们将探讨如何在Vue3应用中使用sessionStorage来保存会话数据,需要的朋友可以参考下
    2025-01-01
  • vue在自定义组件上使用v-model和.sync的方法实例

    vue在自定义组件上使用v-model和.sync的方法实例

    自定义组件的v-model和.sync修饰符其实本质上都是vue的语法糖,用于实现父子组件的"数据"双向绑定,下面这篇文章主要给大家介绍了关于vue在自定义组件上使用v-model和.sync的相关资料,需要的朋友可以参考下
    2022-07-07
  • 一篇文章告诉你如何编写Vue插件

    一篇文章告诉你如何编写Vue插件

    这篇文章主要为大家介绍了如何编写Vue插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • Vue.js单向绑定和双向绑定实例分析

    Vue.js单向绑定和双向绑定实例分析

    这篇文章主要介绍了Vue.js单向绑定和双向绑定,结合实例形式分析了vue.js单向绑定与双向绑定相关原理、实现方法及操作技巧,需要的朋友可以参考下
    2018-08-08
  • 解决vue中菜单再次点击内容不刷新问题

    解决vue中菜单再次点击内容不刷新问题

    当elementUI中菜单打开后,再次点击不会刷新的问题,导致菜单再次点击不刷新的根本原因是页面打开后,再次打开相同的页面是不会刷新的,这应该是框架的机制就是如此,小编整理了两个比较不错的解决方法,需要的朋友可以参考下
    2023-08-08
  • vue获取当前激活路由的方法

    vue获取当前激活路由的方法

    下面小编就为大家分享一篇vue获取当前激活路由的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue混合文件使用以及ref的引用实例详解

    Vue混合文件使用以及ref的引用实例详解

    ref用来辅助开发者在不依赖于jQuery的情况下,获取DOM元素或组件的引用,下面这篇文章主要给大家介绍了关于Vue混合文件使用以及ref的引用的相关资料,需要的朋友可以参考下
    2022-12-12
  • Vue源码学习之数据初始化

    Vue源码学习之数据初始化

    这篇文章主要为大家介绍了Vue源码学习之数据初始化实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论