Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Vue清除定时器优化方案「建议收藏」,希望能够帮助你!!!。
this.clock = setInterval(()=>{
this.nums = this.nums+1
console.log(this.nums)
},1000)
beforeDestroy(){
clearInterval(this.clock)
this.clock223 = null
}
一个定时器,然后在beforeDestroy中清除,
今天看到有一个优化方案
网上说这个方案的有点千篇一律 都是官方文档上的这两句话
1它需要在这个组件实例中保存这个 timer,如果可以的话最好只有生命周期钩子可以访问到它。这并不算严重的问题,但是它可以被视为杂物。
“杂物”的意思就是指在人们生活和工作的环境中存在的无用的,废弃的,多余的,或者暂时不用的,需要清理和整理,或归类整理的各类东西和物品。(说白了就是这么写有点搂)
2我们的建立代码独立于我们的清理代码,这使得我们比较难于程序化的清理我们建立的所有东西。
(建立的代码和清理的代码分开写 不方便维护)
getAddNum() {
const timer = setInterval(() => {
this.nums = this.nums+1
}, 500);
// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
this.$once("hook:beforeDestroy", () => {
clearInterval(timer);
});
},
建立一个定时任务,然后监听beforeDestroy时清除这个任务,这样就变成了有经验的开发人员
vue官网程序化事件监听链接
上一篇