自定义指令的写法:将组件写法中的component改为directive;
自定义指令选项是有几个钩子组成的,每个都是可选的。
- bind:只调用一次,指令第一次绑定到元素时调用,用的这个钩子函数可以定义在一个绑定时执行的初始化动作;
- inserted:被绑定元素插入父节点是调用(父节点存在即可调用,不必存在于document中)
- update:被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要模板的更新。
- componentUpdated;被绑定元素所在模板完成一次更新周期时调用
- unbind:只调用一次,指令与元素解绑时调用
每个钩子函数都有几个元素可用:
- el:指令所绑定的元素,可以用来直接操作DOM
- binding:一个对象,包含以下属性:
- name:指令名,不包括v-去前缀
- value:指令的绑定值
- oldValue:指令绑定的前一个值,只有在update和componentUpdated钩子中可以用。无论值是否改变都可用
- expression:绑定值的字符串形式
- arg:传给指令的参数
- modifiers:一个包含修饰符的对象。
3.vnode:Vue编译生成的虚节点
4.oldVnode:上一个虚节点,只有在update和componentUpdated中可以用