在页面挂载时定义一个定时器,需要在页面销毁时清除定时器,我们可以使用以下方式,但仔细观察,this.timer 的唯一目的是能够在 beforeDestroy 中获取计时器编号,没有其他作用。
export default {
mounted() {
this.timer = setInterval(() => {
console.log(Date.now())
}, 1000)
},
beforeDestroy() {
clearInterval(this.timer)
}
}
我们可以通过使用 on 或 once 监听页面生命周期销毁来解决这个问题
export default {
mounted() {
this.creatInterval( hello )
},
methods: {
creatInterval(msg) {
let timer = setInterval(() => {
console.log(msg)
}, 1000)
this.$once( hook:beforeDestroy , function() {
clearInterval(timer)
})
}
}
}
使用这种方法,即使我们同时创建多个定时器,也不影响效果。