注册一个自定义指令分为全局注册与局部注册
- 全局注册,主要是用过Vue.directive方法进行注册
Vue.directive('fo',{
inserted:function(el){
// 聚焦元素
el.focus()
}
})
- 局部注册,在组件中设置directive属性
directives: {
// 局部自定义指令
custom1: {
inserted(el) {
console.log("el", el);
el.style.color = "#333";
},
},
- 钩子函数
自定义指令的钩子函数:
- bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
- inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)
- update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新
- componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用
- unbind:只调用一次,指令与元素解绑时调用
所有钩子函数的参数都有以下:
- el:指令所绑定的元素,可以用来直接操作 DOM
- binding:一个对象,包含以下 property: