vue $.once 应用

vue $.once 应用

  • $once 是一个函数,可以为 Vue 组件实例绑定一个自定义事件,但该事件只能被触发一次,触发之后随即被移除。
  • $once 有两个参数,第一个参数为字符串类型,用来指定绑定的事件名称,第二个参数设置事件的回调函数。
  • $once 可以多次为同一个事件绑定多个回调,触发时,回调函数按照绑定顺序依次执行。

搭配 hook 勾子使用

  • 通常我们在页面销毁前清理定时器,是写在生命周期钩子函数 beforeDestroy()里
  • 在 beforeDestroy()钩子里进行销毁,意味着在这个钩子里要能获取到定时器的实例,也就是说定时器的实例要在 vue 实例中,占内存
  • 创建定时器的代码和清除定时器的代码通常是不在一块的,很容易出现写着写着忘记清除定时器,不易维护
1
2
3
4
const timer = setInterval(() => {
//执行逻辑
}, 10 * 1000);
this.$once("hook:beforeDestroy", () => clearInterval(timer));

其他用途

取消监听事件、事件总线