记录 - 在vue中使用setTimeout,离开当前路由setTimeout未销毁的问题

发布时间:2019-05-25 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了记录 - 在vue中使用setTimeout,离开当前路由setTimeout未销毁的问题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

问题:从第一个页面跳转到第二个页面后,如果停留在第二个页面,定时器还在运行。如果在两个页面之间来回跳转,跳转时间小于定时器的间隔时间时,也会出现重复创建setTimeout的情况。

原因:当我们刷新页面时,会将当前页面之前创建的setTimeout以及其他定时器都清除掉,但是仅仅是路由切换是不会清除的。

解决:具体代码:`

data () {
    return {
      overtimer: null
    }
},
methods: {
    stoptime () {
      clearTimeout(this.overtimer);
    }
},
created () {
    this.overtimer = setTimeout(() => {
        this.$Message.error('读取卡片超时');
     }, 10000)
    this.$once('hook:beforeDestroy', () => {            
      clearInterval(this.overtimer);
      this.overtimer = null;
    })
}

`

脚本宝典总结

以上是脚本宝典为你收集整理的记录 - 在vue中使用setTimeout,离开当前路由setTimeout未销毁的问题全部内容,希望文章能够帮你解决记录 - 在vue中使用setTimeout,离开当前路由setTimeout未销毁的问题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。