说说 Vue.js 中的自定义指令

如果需要直接操作 DOM,那么就会用到自定义指令啦。

1 注册

注册自定义指令分为全局注册与局部注册两种:

全局注册:

   Vue.directive('xxx', {
        inserted: function (el) {
           //指令属性
        }
    });

局部注册:

var app = new Vue({
	el: '#app',
	directives: {
		xxx: {
			//指令属性
		}
	}
});

2 属性

自定义指令属性包含这些钩子函数,它们都是可选的:

钩子函数 说明
bind 只调用一次,第一次绑定指令到元素时调用,我们可以在此绑定只执行一次的初始化动作。
inserted 被绑定元素插入父节点时调用(父节点只要存在即可调用,不必存在于 document 中)。
update 无论绑定值是否发生变化,只要被绑定元素所在的模板被更新即可调用。Vue.js 会通过比较更新前后的绑定值,忽略不必要的模板更新操作。
componentUpdated 被绑定元素所在模板完成一次更新周期时调用。
unbind 指令与元素解绑时调用,只调用一次。

假设我们需要自定义一个 v-focus 指令,即在