Vue中clearInterval失效问题
发表于:2022-04-18 | 分类: 前端
字数统计: 163 | 阅读时长: 1分钟 | 阅读量:
使用场景:在当前页面使用的定时器,离开当前页面需要销毁 以避免不必要的性能浪费
首先是setIntervalclearInterval的基本用法
1
2
3
4
5
6
7
const myTimer = setInterval(function(){ // 每 1s 调用一次
console.log('do once...')
}, 1000)

beforeDestroy(){
clearInterval(myTimer) // 清除定时器 myTimer
}
在 Vue 中,有时会发现 clearInterval 执行后定时器并没有被清除,可以使用下面方法试试
1
2
3
4
5
6
const myTimer = setInterval(function(){
// do someting...
}, 1000)
this.$once('hook:beforeDestroy',() => {
clearInterval(myTimer)
})
修改为上面的方法之后 clearInterval 就生效了,具体原因不明

$once 相关用法参考 Vue api 实例方法/事件

上一篇:
Js实现网页时钟(备用)
下一篇:
Js异步改类似同步(按顺序执行)