vue3基础-自定义指令directive

全局自定义指令

场景: 视情况而定 (一般不使用)

 // 全局自定义指令
 app.directive('focus', {
   mounted(el) {
     el.focus();
   }
 })
 app.directive('blur', {
   mounted(el) {
     el.addEventListener('blur', function(el) {
       if (el.target.tagName === 'INPUT') {
         el.target.value = el.target.value.toUpperCase();
       }
     })
   }
 })

使用方式:template直接使用: <input v-focus v-blur />

局部自定义指令

 const directives = {
   focus: {
     mounted(el) {
         el.focus();
     }
   },
   blur: {
     mounted(el) {
       el.addEventListener('blur', function(el) {
         if (el.target.tagName === 'INPUT') {
           el.target.value = el.target.value.toUpperCase();
         }
       })
     }
   }
 }

使用方式

const app = Vue.createApp({
  directives: directives, // 需要注册
  template: `
    <div>
      <input v-focus v-blur />
    </div>`,
})

vue2使用自定义指令

    <script>
        var app = new Vue({
            el: '#app',
            template: `
                <div>
                    <input v-model="message" v-focus />
                    {{message}}
                </div>
            `,
            data: {
                message: '12'
            },
            directives: {
                focus: {
                    // 指令的定义
                    bind: function (el, binding, vnode) {
                        let done = true
                        el.addEventListener('input', function(e) {
                            if (done && /^123/.test(el.value)) {
                                el.value += '-'
                                done = false
                            }
                        })
                    }
                }
            }
        })
    </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值