Vue自定义指令

133 阅读1分钟

1.自定义指令是什么?

除vue 官方提供的 v-text、v-for、v-model、v-if 等常用的指令外,vue 允许开发者自己定义的指令。

2.为什么使用自定义指令?

自定义指令是用来操作DOM的。尽管Vue推崇数据驱动视图的理念,但并非所有情况都适合数据驱动。自定义指令就是一种有效的补充和扩展,不仅可用于定义任何的DOM操作,并且是可复用的。

3. 自定义指令的分类有哪些?

vue 中的自定义指令分为两类,分别是:

⚫ 私有自定义指令

在每个 vue 组件中,可以在 directives 节点下声明私有自定义指令。

image.png

⚫ 全局自定义指令

 全局共享的自定义指令需要通过“Vue.directive()”进行声明
 

image.png

4.自定义指令如何使用?

(1)在使用自定义指令时,需要加上 v- 前缀

image.png

(2)如何为自定义指令动态绑定参数值?

template 结构中使用自定义指令时,可以通过等号(=)的方式,为当前指令动态绑定参数值 

image.png

(3)如何通过 binding 获取指令的参数值

在声明自定义指令时,可以通过形参中的第二个参数,来接收指令的参数值

image.png

(4) 如何简写?

如果 insert 和update 函数中的逻辑完全相同,则对象格式的自定义指令可以简写成函数格式

image.png

(6)关于 update 函数

bind 函数只调用 1 次:当指令第一次绑定到元素时调用,当 DOM 更新时 bind 函数不会被触发。 update 函数会在每次 DOM 更新时被调用

image.png