博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

单页面应用定时器销毁

Posted on 2022-03-01 16:38  地霊殿~三無  阅读(143)  评论(0编辑  收藏  举报

一、 遇到的情况

项目是单应用页面,我在mounted中调用了setInterval定时器,每次路由参数改变都会重新调用一次setInterval定时器,导致定时器错乱

(后面才明白出现这样的原因就是,每次路由参数改变,页面会重新加载,而上次的定时器并没有销毁,又重新调用了定时器,就会同时存在多个定时器)

二、 解决方法

在mounted调用setInterval定时器前销毁,并没有效果,此时的定时器变量已经是null,对它调用clearInterval方法没有意义

最终采用了以下方法:

beforeDestroy() {
    // 在beforeDestroy周期里去销毁调用了的定时器
    if (this.timer !== null) {
      clearInterval(this.timer)
    }
  },  

 

 

ps: 太久没更新了水一下

Live2D