vue -- 自定义指令
除了内置指令外, 用户自定义的指令
自定义指令有全局和局部
自定义指令都是v-name的模式,如:v-focus,name是directive()方法的第一个参数
全局自定义指令
Vue.directive('focus', {
inserted: function (el) {
el.focus()
}
})
局部自定义指令
局部自定义指令就是一个对象,所以自定义的指令都可以写在这里,key就是指令名,value也是个对象,挂载钩子函数
directives: {
focus: {
inserted: function (el) {
el.focus()
}
}
}
这个方法有两个参数,第一个就是自定义指令的名字,第二个参数是操作对象,这个对象里有几个钩子函数
bind
:绑定指令到元素上,只执行一次
inserted
:绑定了指令的元素插入到页面中展示时调用,基本上都是操作这个钩子函数
update
:所有组件节点更新时调用
componentUpdated
:指令所在组件的节点及其子节点全部更新完成后调用
unbind
:解除指令和元素的绑定,只执行一次
钩子函数的参数有四个:
el
:就会指令所绑定的DOM
binding
:一个包含DOM和指令的一些信息的对象
vnode
:就是编译生成的虚拟节点
oldVnode
:上一个虚拟节点