1.定義全局指令
在main.js中聲明全局指令
//自定義全局組件(directive沒有s)
Vue.directive('focus',{
inserted:function(el) {
el.focus();
}
});
在元素中使用自定義指令
<input type="text" v-focus>
2.局部指令
直接在當(dāng)前組件中添加directives
<script>
export default {
name: "hello",
directives:{
focus:{
inserted:function(el){
el.focus();
}
}
}
</script>
bind:當(dāng)指令綁定到元素上時(shí),會(huì)執(zhí)行該函數(shù),只調(diào)用一次。(主要做樣式的處理)
inserted:表示元素插入到DOM時(shí),會(huì)執(zhí)行該函數(shù)。(主要做頁(yè)面加載后的一些觸發(fā)事件,例:自動(dòng)獲取焦點(diǎn),若寫在bind中,不生效。因?yàn)樽詣?dòng)獲取焦點(diǎn)必須時(shí)頁(yè)面 dom加載完成才能獲取焦點(diǎn)。)
updated:所在組件的 VNode 更新時(shí)調(diào)用,但是可能發(fā)生在其子 VNode 更新之前。
componentUpdated:指令所在組件的 VNode 及其子 VNode 全部更新后調(diào)用。
unbind:只調(diào)用一次,指令與元素解綁時(shí)調(diào)用。