Vue @hook

作者: Viewwei | 来源:发表于2021-02-26 15:24 被阅读0次
  • 使用
    之前我们在Vue使用定时器的时候,在创建定时器的时候,当页面不存在的时候需要销毁定时器。我们一般会这样使用
<script>
  export default {
    mounted() {
      this.timer = setInterval(() => { ... }, 1000);
    },
    beforeDestroy() {
      clearInterval(this.timer);
    }
  };
</script>

但是还有更好的方式处理。这其实是我们在组件初始化的时候,挂载了beforeDestroy钩子。钩子的使用方式为
$emit(hook+声明周期),其实在源码中也是可以看到的,当我们创建一个自定义钩子的时候,也会对系统钩子和自定义钩子进行合并

<script>
  export default {
    mounted() {
      const timer = setInterval(() => { ... }, 1000);
      this.$once('hook:beforeDestroy', () => clearInterval(timer);)
    }
  };
</script>

介绍

hook可以让我们在一个声明周期中监听其他生命周期的方法,一些情况下可以简化代码和优化代码的效果。比如多个声明周期比较简单,这个时候就可以考虑把这些代码放到create,mount中。
当一个组件内的生命周期函数在执行结束后emit自定事件,不仅可以在组件中被on,Vue的语法也觉得这些事件可以被父组件v-on到。比如我们希望父组件监听到子组件mount,beforeUpdate等生命周期,那么可以使用如下实例

<v-chart
    @hook:mounted="loading = false"
    @hook:beforeUpdated="loading = true"
    @hook:updated="loading = false"
    :data="data"
/>

这样就实现了对子组件生命周期的监听。对第三方组件也是有效的

相关文章

  • Vue3——Hook函数 & 生命周期 & toRef和toRe

    一、Hook函数 Vue3 的hook函数相当于 vue2 的 mixin,不同点在于hooks是函数。Vue3的...

  • Vue3 Hooks 替代了 Vue2 Mixins

    前言 我们知道,React社区,已经全面拥抱Hook。Vue3的发布也支持了自定义Hook,作为只会Vue2的前端...

  • [Vue warn]: Error in mounted hoo

    报错信息 [Vue warn]: Error in mounted hook: "TypeError: Inval...

  • vue 之 hook使用

    vue 之 hook使用 记录一下vue中hook的两点使用 1. 在同一个组件中 例如:在mounted中添加一...

  • Vue @hook

    使用之前我们在Vue使用定时器的时候,在创建定时器的时候,当页面不存在的时候需要销毁定时器。我们一般会这样使用 但...

  • [vuex]Cannot read property 'disp

    vuex访问报错:[Vue warn]: Error in created hook: "TypeError: C...

  • $ is not defined

    vendor.js:896 [Vue warn]: Error in mounted hook: "Referen...

  • [Vue warn]: Error in mounted hoo

    在运行Vue项目时出现了控制台报错:[Vue warn]: Error in mounted hook: "Typ...

  • hook是什么

    起因 闲下来无事,又重新翻了下vue的文档,发现了一下这个东西。 hook是什么?hook:beforeDestr...

  • vue3 hook函数

    Vue3 的 hook函数 相当于 vue2 的 mixin, 不同在与 hooks 是函数 Vue3 的 hoo...

网友评论

    本文标题:Vue @hook

    本文链接:https://www.haomeiwen.com/subject/dggmfltx.html