vue自定义指令

ue自定义指令

自定义全局指定

自定义可以让表单元素自动获取光标的元素

import Vue from 'vue'

// 全局指令
Vue.directive('focus', {
    inserted(el) { // 被添加进去之后
        el.focus() // 获取光标
    }
})

使用

<input type="text" v-foucs />

自定义局部指令

// 实例或者组件接受一个directives的属性,内部可以添加自定义属性,则为局部指令
directives: {
    focus2: {
        inserted(el) {
            el.focus()
        }
    }
}

使用

<input type="text" v-focus2 />

钩子函数

directives: {
    focus2: {
      
        bind(el, binding, vnode) {
            // 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
            console.log(el);
            console.log(binding);
            console.log(vnode);
            console.log('bind');
        },
        inserted(el) {
            // 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
            el.focus()
            console.log('inserted');
        },
        update() {
            // 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。
            console.log('update');
        },
        componentUpdated() {
            // 被绑定元素所在模板完成一次更新周期时调用。
            console.log('componentUpdated');
        },
        unbind() {
            // 只调用一次, 指令与元素解绑时调用。
            console.log('unbind');
        }
    }
}

对象字面量

directives: {
    demoo(el, binding) {
        console.log(el); // 获取当前元素 <div></div>
        console.log(binding.value.name); // 获取传递的值 xiaoming
        console.log(binding.value.age); // 获取传递的值 18
      binding.value.a
    },
}

使用

<div v-demoo="{ name: 'xiaoming', age: 18, a: 33 }"></div>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue官方文档中介绍了两种自定义指令的方法:全局自定义和局部自定义。 全局自定义组件可以在main.js中直接注册...
    Erric_Zhang阅读 3,017评论 2 1
  • Vue指令 Vue的指令以v-开头,作用在HTML元素上,将指令绑定在元素上,给绑定的元素添加一些特殊行为。 例如...
    syd192阅读 5,069评论 0 9
  • 自定义指令 Vue.js已经为我们提供了很多默认的指令,例如:v-for、v-if、v-bind、v-on等,这些...
    懒人成长阅读 4,699评论 0 2
  • >> 阅读官网 当页面加载时,元素将获得焦点 (注意:autofocus 在移动版 Safari 上不工作)。事实...
    竹小星阅读 3,153评论 2 3
  • 下午开始低烧,很难受,所以下班提前就走了,最近脸上也长了好多痘痘,周六去挂个中医看看吧
    叶惟一阅读 3,411评论 0 2