素材巴巴 > 程序开发 >

vue2跳转页面时定时器不会被清除

程序开发 2023-09-03 09:38:59

1.之前的代码

created() {this.show_cur_times();this.timer = setInterval(this.show_cur_times, 1000);
 },
 beforeUnmount() {clearInterval(this.timer);
 },
 

我在调用方法里面加了一个打印1,跳转以后还在一直打印,并没有清除定时器,这样会导致内容泄漏,影响性能。
在这里插入图片描述


通过 $once这个事件侦听器器来解决问题
this. $once(‘hook:生命周期’,callback),就可以监听到生命周期的变化了。

2.核心代码

  this.$once("hook:beforeDestroy", () => {clearInterval(this.timer);});
 

3.修改过后的代码,解决问题

created() {this.show_cur_times();//跳转页面时清除定时器this.timer = setInterval(this.show_cur_times, 1000);// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。this.$once("hook:beforeDestroy", () => {clearInterval(this.timer);});},
 

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。