项目中碰到的问题。

组件A

页面一加载,执行一个定时器,往控制台打印1

created:function() {
  this.t = window.setInterval(this.cons,1000)
},
methods:{
  cons () {
    console.log(1)
  }
}

组件A能跳转到组件B,使用router-link 完成跳转。

此时在B组件页面中发现,原A组件的定时器依然在执行。

网上找到了方法,给A组件添加销毁前的钩子函数,在A组件销毁前关闭掉定时器

beforeDestroy () {
  clearInterval(this.t)
}

这里就引发了一个问题。

路由跳转发生后,上一个组件会被销毁。原有的组件都销毁了,为什么原组件中的定时器没有被清除掉呢?大家可以讨论下。

Logo

前往低代码交流专区

更多推荐