一、 遇到的情况
项目是单应用页面,我在mounted中调用了setInterval定时器,每次路由参数改变都会重新调用一次setInterval定时器,导致定时器错乱
(后面才明白出现这样的原因就是,每次路由参数改变,页面会重新加载,而上次的定时器并没有销毁,又重新调用了定时器,就会同时存在多个定时器)
二、 解决方法
在mounted调用setInterval定时器前销毁,并没有效果,此时的定时器变量已经是null,对它调用clearInterval方法没有意义
最终采用了以下方法:
beforeDestroy() { // 在beforeDestroy周期里去销毁调用了的定时器 if (this.timer !== null) { clearInterval(this.timer) } },
ps: 太久没更新了水一下