VUE 设置定时器和清理定时器

2021-8-31    前端达人

使用钩子函数对定时器进行清理,失败了,

1、在data中声明要设置的定时器名称:


  1. data() {
  2. return {
  3. timer: null // 定时器名称
  4. }
  5. },复制代码

2、在mounted中创建定时器:


  1. this.timer = (() => {
  2. // 某些操作
  3. }, 5000)复制代码

3、在页面注销时清理定时器:


  1. beforeDestroy() {
  2. clearInterval(this.timer);
  3. this.timer = null;
  4. }复制代码

然鹅,并没什么卵用,在切换页面后,定时任务依然顽强的奔跑着。


  1. beforeDestroy() {
  2. clearInterval(this.timer);
  3. this.timer = null;
  4. console.log(this.timer) //输出为: null,但是任务依然在继续运行
  5. }复制代码

可能是我的姿势不对吧。害羞.jpg

经过在各大论坛一番查找发现:

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


  1. const timer = setInterval(() =>{
  2. // 某些定时器操作
  3. }, 5000);
  4. // 通过$once来监听定时器
  5. // 在beforeDestroy钩子触发时清除定时器
  6. this.$once('hook:beforeDestroy', () => {
  7. clearInterval(timer);
  8. }) 复制代码

哇,成功了...



蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码ben_lanlan,报下信息,会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

文章来源:csdn

分享此文一切功德,皆悉回向给文章原作者及众读者.
免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务




分享本文至:

日历

链接

blogger

蓝蓝 http://www.lanlanwork.com

存档