VUE-directive指令,输入框设置字体颜色(3)
1、私有指令语法:directives:{'focus(指令名称)':{bind(el) {},inserted(el,binding){},updated(el) {},},}引用方式:<input type="text" v-model="id" name="id" v-focus>注意:在定义...
·
1、私有指令语法:
directives:{
'focus(指令名称)':{
bind(el) {},
inserted(el,binding){},
updated(el) {},
},
}
引用方式:
<input type="text" v-model="id" name="id" v-focus>
注意:在定义的时候,指令的名称前面,不需要加 v- 前缀,但是,在调用的时候,必须 在指令名称前 加上 v- 前缀来进行调用
2、 钩子函数,只介绍常用
| 只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。 和style有关的操作,最好在bind中去执行 |
inserted | 被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。 和JS行为有关的操作,最好在 inserted 中去执行,否者 JS行为不生效 |
update | 当VNode更新的时候,会执行 updated, 可能会触发多次 |
3、钩子函数参数,只介绍常用
el
:指令所绑定的元素,可以用来直接操作 DOM 。binding
:一个对象,包含以下属性:name
:指令名,不包括v-
前缀。value
:指令的绑定值,例如:v-my-directive="1 + 1"
中,绑定值为2
。oldValue
:指令绑定的前一个值,仅在update
和componentUpdated
钩子中可用。无论值是否改变都可用。expression
:字符串形式的指令表达式。例如v-my-directive="1 + 1"
中,表达式为"1 + 1"
。
4、实例
- v-color指令定义:
directives:{
'color':{
bind(el) {
el.style.color='red'
},
},
或
directives:{
'color':{
bind(el,binding) {
el.style.color=binding.value
},
},
- v-color指令引用:
<input type="text" v-model="id" name="id" v-color>
或
<input type="text" v-model="id" name="id" v-color="'green'">
- 效果
更多推荐
已为社区贡献32条内容
所有评论(0)