once的概述如下:
$once是一个函数,可以为Vue组件实例绑定一个自定义事件,但该事件只能被触发一次,触发之后随即被移除。
$once有两个参数,第一个参数为字符串类型,用来指定绑定的事件名称,第二个参数设置事件的回调函数。
$once可以多次为同一个事件绑定多个回调,触发时,回调函数按照绑定顺序依次执行。
还可以作为修饰符使用
once搭配hook勾子使用:
export default{
methods:{
setTimeData(){
let timer = setInterval(()=>{
// to do
console.log("定时器打印111");
},1000);
this.$once('hook:beforeDestroy',()=>{
clearInterval(timer);
timer = null;
})
}
}
}
在任意地方用 this.o n / on/on/once(‘hook:生命周期’,callback),就可以监听到生命周期的变化了
这样使用和清除就写在一起,不用定义多余的变量,感觉代码更优雅了。
这篇文章是为了拿1024勋章的,未来有时间再回来完善一下。