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);
});
},