问题:页面在使用 setTimeout 定时循环某方法,或者在两个页面之间跳转时间小于定时器的时间间隔时,定时器还在运行。
原因:当我们刷新页面时,会将当前页面之前创建的 setTimeout 以及其他定时器都清除掉,但是仅仅是路由切换是不会清除的。

data (){
	return{
		clearTime: ''
	}
},
mounted () {
	randomGet () {
	// 在 1分钟到 2分钟之间 不定时执行
      var r = Math.random() * (2 - 1) + 1
      var t = Math.ceil(r * 60000)
      // console.log(t)
      this.clearTime = setTimeout(() => {
        this.submit()
        this.randomGet()
      }, t)
    },
    submit () {
    	console.log('aaaa')
    }
},
destroyed () {
	clearTimeout(this.clearTime) // 清除
}
Logo

前往低代码交流专区

更多推荐