v-xxx
一、定义语法
1.局部指令
new Vue({
directives: {
//方法一:
big(element, binding) {
element.innerText = binding.value * 10;
console.log(binding.value);
},
//方法二:
fbind: {
// 指令与元素成功绑定时
bind(element, binding) {
element.value = binding.value;
},
// 指令所在元素被插入页面时
inserted(element, binding) {
element.value = binding.value;
element.focus();
},
// 指令所在模板被重新解析时
update(element, binding) {
element.value = binding.value;
element.focus();
}
}
}
})
2.全局指令
Vue.directive('big', function (element, binding) {
console.log(1);
})
Vue.directive('fbind2',{
bind(element,binding){
console.log(123);
},
inserted(element,binding){
console.log(123);
},
update(element,binding){
console.log(123);
}
})
二、配置对象中常用的3个回调
1)bind:指令与元素成功绑定时调用
2)inserted:指令所在元素被插入页面时调用
3)update:指令所在模板被重新解析时调用
三、备注
1.指令定义时不加v-,但使用时要加v-
2.指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase(驼峰)命名。
<input v-fbind-num:value="n" type="text">//√
<input v-fbinNnum:value="n" type="text"> //×
//注意要用字符串的形式,没有加的是因为省略了。
'fbind-num'(element, binding) {
element.innerText = binding.value * 10;
console.log(binding.value);
}
3.定义的指令中的this都是windows元素,而非vm元素。
‘fbind-num’(element, binding) {
console.log(this);//这里的this是window
}