Vue清除定时器优化方案「建议收藏」

Vue (107) 2023-03-27 15:10

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Vue清除定时器优化方案「建议收藏」,希望能够帮助你!!!。
Vue清除定时器优化方案「建议收藏」_https://bianchenghao6.com/blog_Vue_第1张

 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官网程序化事件监听链接
Vue清除定时器优化方案「建议收藏」_https://bianchenghao6.com/blog_Vue_第2张

发表回复