chaihongjun.me

[Vue]入门学习之二十二Vue的自定义指令

Vue2.0代码复用和抽象主要是组件形式,有时候还是需要对DOM进行一些操作,因此自定义指令是一个不错选择。自定义指令的注册方式和组件类似,有分为全局注册和局部注册。

//全局注册
Vue.directive("自定义指令名称不要带v-",{/* 参数 */})

//局部注册
directives:{
    自定义指令名称不带v-:{
        /*  参数 */
    }
}

参数部分则是任意可选的钩子函数(hook function):

bind 只调用一次的bind,也就是指令第一次绑定到元素的时候的调用,用来初始化设置

inserted 绑定完指令的元素插入到父节点的时候调用,父节点必须存在

updated 组件的虚拟Node更新的时候调用

componentUpdated 指令所在的组件更新后调用

unbind 指令和元素解绑的时候调用

钩子函数有如下参数

hook function(el,binding,vnode,oldnode)

el 指代绑定的元素,可以直接操作DOM 

binding 是一个对象,包含的属性:name 指令的名称,value 指令的绑定值 ,oldValue 绑定的旧值,只在updated和componentUpdated钩子里面可用,expression 字符串形式的指令表达式,

arg 传给指令的参数,modifiers 是包含修饰符的对象。

directives: {
      // 指令的定义v-focus
  focus: {
    inserted: function (el) {
      el.focus()
    }
  }
}
<input v-focus>


知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。作者:柴宏俊»