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

新手上路,请多包涵

setInterval(()=>{

          setTimeout(this.aaa(),0)
        },10000)
阅读 5.9k
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钩子函数中进行销毁处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题