本篇文章給大家分享的是有關(guān)如何在Vue.js中自定義指令,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。成都創(chuàng)新互聯(lián)公司推出德江免費(fèi)做網(wǎng)站回饋大家。
自定義指令
自定義指令的注冊(cè)方法和組件很像,也分全局注冊(cè)和局部注冊(cè),比如注冊(cè)一個(gè)v-focus指令用于在、
//全局注冊(cè) Vue.directive('focus',{ //指令選項(xiàng) }); //局部注冊(cè) var app = new Vue({ el: '#app', directive: { focus: { //指令選項(xiàng) } } });
自定義指令的選項(xiàng)是由幾個(gè)鉤子函數(shù)組成的,每個(gè)都是可選的。
自定義指令的各個(gè)選項(xiàng)如下:
bind:只調(diào)用一次,指令第一次綁定到元素時(shí)調(diào)用,用這個(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)用。
可以根據(jù)需求在不同的鉤子函數(shù)內(nèi)完成邏輯代碼,例如上面的v-focus,我們希望在元素插入父節(jié)點(diǎn)時(shí)就調(diào)用,那用到的最好是inserted。
自定義指令
每個(gè)鉤子函數(shù)都有幾個(gè)參數(shù)可用,具體如下:
el:指令所綁定的元素,可以用來(lái)直接操作DOM
binding:一個(gè)對(duì)象,包含以下屬性:
name:指令名,不包括v-前綴
valule:指令的綁定值,例如v-my-directive=“1 + 1”,value的值是2
oldValue:指令綁定的前一個(gè)值,僅在update和componentUpdated鉤子中可用。無(wú)論值是否改變都可用
expression:綁定值的字符串形式。例如v-my-directive=“1 + 1”,expression的值是”1 + 1“
arg:傳給指令的參數(shù)。例如v-my-directive:foo,arg的值是foo
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鉤子中可用。
示例:
自定義指令
以上就是如何在Vue.js中自定義指令,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。