在页面A中设置一个定时器,打印一个a,然后跳转到B页面,这个定时器还一直在执行,这样是非常耗性能的。
解决思路:
使用Vue的$once这个事件侦听器器在定义完定时器之后的位置来清除定时器
代码:
const timer = setInterval(() =>{
// 某些定时器操作
}, 500);
// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
this.$once('hook:beforeDestroy', () => {
clearInterval(timer);
})
类似于其他需要在当前页面使用,离开需要销毁的组件(例如一些第三方库的picker组件等等),都可以使用此方式来解决离开后以后在背后运行的问题。
参考来源:掘金社区