美文网首页
VUE动态增加钩子函数

VUE动态增加钩子函数

作者: 是素净呀丶 | 来源:发表于2018-07-23 11:46 被阅读0次

有时候需要在组件挂载完成之后,对dom增加一些自定义事件,但需要在beforeDestroy中对该事件进行摧毁,所以,你不得不这样做:

  mounted() {
    const vm = this;
    const el =  vm.$el.querySelector('#id');
  
    document.addEventListener(
      'click',
      vm.clickHandler,
      false
    );
  },
  beforeDestroy() {
    const vm = this;
    const el =  vm.$el.querySelector('#id');

    el.removeEventListener(
      'click',
      vm.clickHandler
    );
  },
  methods: {
    clickHandler(e) {}
  }

略显复杂, 一个dom事件还好,如果是多个的话,好累(就是不愿意在n个钩子中处理一个东东...),于是,源代码走起。chrome启动,github启动,vue/vueJs启动。然后,解决方案如下:

mounted() {
  const vm = this;
  
  vm.initDomEvent();
},
methods: {
  initDomEvent() {
    // 事件一
    const vm = this;
    const el = vm.$el.querySelector('#id');
    const elClickHandler = (e) => {};
  
    if (el instanceOf Element) {
      el.addEventListener(
        'click',
         elClickHandler,
         false
      );
    
      // 方案一
      vm.$options['beforeDestroy'] = (
        vm.$options['beforeDestroy'] || []
      ).concat(() => {
        el.removeEventListener(
          'click',
          elClickHandler
        );
      });

      // 方案二
      vm.$once("hooks:beforeDestroy", () => {
          .....
      });
    }

    // 事件二
    ...
  }
}

有可能有人还是喜欢第一种,不过老夫呢,自然喜欢第二种,特别是方案二了,哈哈。

相关文章

  • VUE动态增加钩子函数

    有时候需要在组件挂载完成之后,对dom增加一些自定义事件,但需要在beforeDestroy中对该事件进行摧毁,所...

  • VUE动态增加钩子函数

    1、

  • vue自定义全局指令

    Vue.directive('指令名',{ 钩子函数1(){}, 钩子函数2(){} }) -----------...

  • vue 获取节点 获取事件

    vue 生命周期 什么是钩子函数 一开始就执行的 就是钩子函数 vue 钩子函数 也称作为生命周期 befor...

  • vue中的钩子函数(二)

    Vue钩子函数 在开发Vue组件时,钩子函数我们会经常用到,但是具体在什么时机,使用哪个钩子函数,会产生什么样的结...

  • 2021-04-11

    vue-router 路由钩子函数(导航守卫) 路由钩子函数有三种: 全局钩子: beforeEach(全局前置守...

  • Vue视频教程系列第三十五节—路由器里的钩子函数

    路由钩子函数介绍: 我之前有介绍过vue里的钩子函数,有四对,也就是八个钩子函数。在路由里呢,其实也有钩子函数,个...

  • 深入浅出Vue生命周期钩子函数

    首先,先展示官方的Vue生命周期钩子函数的图示 在Vue2.0+版本,一个Vue实例共有以下八个生命周期钩子函数 ...

  • 初探Vue实例的生命周期

    Vue实例的生命周期简单地理解为8个钩子函数 Vue实例对每个钩子函数的调用时机如下 beforeCreate 在...

  • VUE

    vue 1.mounted函数(钩子函数)的应用场景? 应用场景:页面一加载就执行函数里面的内容.注意: 钩子函数...

网友评论

      本文标题:VUE动态增加钩子函数

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