VUE——自定义指令

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
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值