javascript - 如何在 Vue 指令中定义一个方法?

标签 javascript vue.js vuejs2 vue-component vue-directives

我有指令,我想在指令中创建一个本地方法并在钩子(Hook)函数中使用它。这是我的代码:

export const OutsideClick = {
  bind (el, binding, vnode) {
    console.log(new Vue());
    // call method1()
  },
  componentUpdated(el, binding, vnode) {
    console.log('updated comp', binding);
    if(binding.value[1]()) {
      // call method1();
    }
  },
  unbind(el, binding, vnode) { 
    console.log('unbinding');
  }
}

那么此时如何在指令中定义函数并在 bindcomponentUpdated 中使用它?

最佳答案

我认为您不能在指令本身内添加方法。但是您可以在指令外部声明该方法并从指令内部调用它。

function method1 (el, binding, vnode) {
 ...
}

export const OutsideClick = {
 bind (el, binding, vnode) {
  console.log(new Vue());
  method1(el, binding, vnode)
 },
 componentUpdated(el, binding, vnode) 
 {
  console.log('updated comp', binding);
  if(binding.value[1]()) {
   method1(el, binding, vnode)
  }
 },
 unbind(el, binding, vnode) { 
  console.log('unbinding')
  method1(el, binding, vnode)
 }
}

关于javascript - 如何在 Vue 指令中定义一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55157157/

相关文章:

vuejs2 - 在 XAMPP 上使用 Vue CLI 3

javascript - 动力学输入,v-model更新v-for中的所有值

javascript - 如何解析行

javascript - Jquery生成随机数

javascript - $(...).jCarouselLite 不是函数

vue.js - 来自 Tailwind 的自定义类的方括号表示法在 Nuxt 应用程序中不起作用

javascript - Vue.js <select> v-model 未在组件内绑定(bind)

javascript - 如何在 angular.bootstrap() 之后设置 $rootScope 的值

css - Vue/Vuetify 过渡只有一种方式

javascript - VueJS - 列出数组并独立显示/隐藏