VUE之自定義指令

聲明自定義指令:

let Opt = {
    bind:function(el,binding,vnode){ },
    inserted:function(el,binding,vnode){ },
    update:function(el,binding,vnode){ },
    componentUpdated:function(el,binding,vnode){ },
    unbind:function(el,binding,vnode){ },
}

bind:只調(diào)用一次,指令第一次綁定到元素時(shí),用這個(gè)鉤子函數(shù)可以定義一個(gè)在綁定時(shí)執(zhí)行一次的初始化動(dòng)作。
inserted:被綁定元素插入父節(jié)點(diǎn)時(shí)調(diào)用(父節(jié)點(diǎn)存在即可調(diào)用,不必存在與document中)
update:被綁定的元素所在的模板更新時(shí)調(diào)用,而不論綁定值是否變化。通過(guò)比較更新前后的綁定值,可以忽略不必要的模板更新
componentUpdated:被綁定元素所在模板完成一次更新周期時(shí)調(diào)用。
unbind:只調(diào)用一次,指令與元素解綁時(shí)調(diào)用。
鉤子函數(shù)參數(shù)有:
el:指令所綁定的元素,可以用來(lái)直接操作DOM
bindng:一個(gè)對(duì)象,包含以下屬性
1)name:指令名,不包含v-前綴
2)value:指令的綁定值,例如:v-my-directive=“1+1”,value的值就是2
3)oldValue:指令綁定的前一個(gè)值,僅在update和componentUpdated鉤子中可用,無(wú)論值是否改變都可用
4)expression:綁定值的表達(dá)式或變量名。例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。
5)arg:傳給指令的參數(shù)。例如v-my-directive:foo,arg的值是foo
6)modifiers:一個(gè)包含修飾符的對(duì)象。例如: v-my-directive.foo.bar, 修飾符對(duì)象 modifiers 的值是 { foo: true, bar: true }。
vnode:vue編譯生成的虛擬節(jié)點(diǎn)
oldVnode:上一個(gè)虛擬節(jié)點(diǎn),僅在update和componentUpdated鉤子中可用,

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容