vue 自定义指令

注册指令

  • 全局注册
  • 局部注册
Vue.directive('focus',{
    inserted: function(el){
        el.focus()
    }
})
directives: {
    focus: {
        inserted: function (el) {
            el.focus()
        }
    }
}

钩子函数

  • bind:只调用一次,指令第一次绑定到元素时使用
  • inserted: 被绑定元素插入父节点时调用
  • update: 所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前
  • componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用
  • unbind:只调用一次,指令与元素解绑时调用

钩子函数参数

  • el:指令所绑定的元素,可以直接用来操作 DOM
  • binding:一个对象,包含有

    • name:指令名,不包括 v- 前缀
    • value:指令的绑定值
    • expression:字符串形式的指令表达式
    • arg:传给指令的参数
    • modifiers:一个包含修饰符的对象
  • vnode:vue编译生成的虚拟节点
  • oldVnode:上一个虚拟节点
    原文作者:零子
    原文地址: https://segmentfault.com/a/1190000018487723
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞