Vue中的自定义指令(directive)


在vue中除了一些内置指令(v-if,v-model)外,我们还可以自定义一些指令,例如:


html结构层

我是全局自定义指令


js行为层



效果图:



new Vue({

el:"#app",

// 注册一个局部自定义指令 v-focus

directives:{

// 当绑定元素插入到 DOM 中。

focus:{

inserted: function (el) {

// 聚焦元素

el.focus()

}

}

}

})

效果图:


补充:钩子函数

指令定义函数提供了几个钩子函数(可选):

bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。

inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

update: 所在组件的 VNode 更新时调用,但是可能发生在其孩子的 VNode 更新之前。指令的值可能发生了改变也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。

componentUpdated: 所在组件的 VNode及其孩子的 VNode全部更新时调用。

unbind: 只调用一次, 指令与元素解绑时调用。

接下来我们来看一下钩子函数的参数 (包括el,binding,vnode,oldVnode) 。

在vue中除了一些内置指令(v-if,v-model)外,我们还可以自定义一些指令,例如:

你可能感兴趣的:(Vue中的自定义指令(directive))