vue自定义指令

自定义指令分为: 自定义私有指令和自定义全局指令

自定义私有指令

简写形式

  directives: {
    color(el, binding) {
      console.log(el); // el是绑定自定义属性的dom对象
      console.log(binding); // binding 是指令后面带的值 
      例如: v-color="coloraa" 其中coloraa是一个定义在data函数里面的数据 或者 v-color="''red"
      el.style.color = binding.value;
    },
}

完整的写法

    directives: {
      // 定义名为color的指令, 指向一个配置对象
      color: {
        // 当指令第一次被绑定到元素上的时候, 会立即触发bind函数
        // 形参中的el表示当前指令所绑定到的那个dom对象
        // 第一次绑定会生效
        bind(el, binding) {
          console.log(el);
          console.log(binding);
          el.style.color = binding.value;
        },


        // 在dom更新的时候, 会触发updata函数
        // 第一次生效, 之后数据更新会生效
        update(el, binding) {
          console.log("update ==>", el);
          console.log("update ==>", binding);
          el.style.color = binding.value;
        },

      },
    }


// 以上为全写的形式, 但bind函数和update函数 除了函数名 其他全部都一样的情况写, 就可以使用简写形式

自己练习的图片和使用

自定义全局指令

 一般在main.js 可以直接 定义.

但为了让main.js 文件看起来不是那么的乱 所以建议在src文件夹中建立一个directive文件(文件名自随意, 因为自定义指令用到了 directives 对象所以叫 directive)

这里在定义全局指令的时候  directives   可以不用加s

一下为代码

完整写法

import Vue from "vue";  // 引入vue的包
Vue.directive('color', {
    biond(el, binding) {
        el.style.color = binding.value
    },
    update(el, binding) {
        el.style.color = binding.value
    }
}) 

简化写法

import Vue from "vue";

Vue.directive('color', (el, binding) => {
    console.log('我是全局指令', el);
    console.log('我是全局指令', binding);
    el.style.color = binding.value
})

以下为自己练习的图片, 并且

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿妖呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值