vue每隔10秒调用一次方法,如何在离开此页面时停止调用

新手上路,请多包涵

setInterval(()=>{

          setTimeout(this.aaa(),0)
        },10000)
阅读 6k
5 个回答

定义一个变量将setInterval保存起来,离开时候用beforeDestory销毁

1、监听页面离开的事件onbeforeunload,取消setInterval定时器

或者

2、为什么要setInterval套setTimeout呢,直接setTimeout嵌套不就行了,也不用关心页面关闭了

const fn = ()=>{
    this.aaa()
    setTimeout(fn, 10000)
}

vue不是有生命周期可以处理么beforeDestroy
或者

this.$once('hook:beforeDestroy', ()=> {
   // clear timer
});

如果你的组件是在keep-alive组件的包裹下,那你可以在钩子函数deactive中进行定时器清除处理;反之可以在beforeDestory钩子函数中进行销毁处理

推荐问题