全局注册(main.js)
Vue提供了一个directive方法给我们注册自定义指令,我们在main.js中注册一个全局的自定义指令
Vue.directive("resize", {
bind() {},
inserted() {},
update() {},
componentUpdated() {},
unbind() {},
});
局部注册(main.js)
如果自定义指令不是每个组件都会用到的话,我们一般局注册自定义指令就好了
directives: {
resize: {
bind() {},
inserted() {},
update() {},
componentUpdated() {},
unbind() {},
}
}
Vue提供了一个directives选项供我们注册自定义指令,它与data、methods同级别,上段代码中 我们注册了一个名叫resize的自定义指令,该指令只允许在组件内部使用
注意:全局注册指令使用的是directive,局部注册指令使用的是directives,很好理解,局部指令一次性注意注册很多个, 全局指令依次只能注册一个
自定义指令参数详解以及钩子函数介绍
-
bind: 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
-
inserted: 被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)
-
update: 所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。 但是你可以通过比较更新前后的值来忽略不必要的模板更新
-
componentUpdated: 指令所在组件的 VNode及其子 VNode全部更新后调用
-
unbind: 只调用一次,指令与元素解绑时调用