在开发vue项目的过程中,无意中发现组件生命周期销毁时,组件中的定时器并没有被销毁。虽然在页面上看不到,但是如果在浏览器控制台打印出来,就会发现定时器还在运行,所以需要销毁定时器,避免代码一直在执行。网上有很多方法。经过我的实验,我把清除函数写在了beforeDestroy中。这里需要介绍一些$once使用vm.$once(eventName,callback)监听的自定义事件,但是只触发一次,第一次触发后移除监听。consttimer=setInterval(()=>{//定时器操作},500);//通过$once监听定时器,在beforeDestroy钩子函数中清除。this.$once('hook:beforeDestroy',()=>{clearInterval(timer);})
