Vue自定義指令

2021-09-17 22:34:57 字數 1175 閱讀 9883

vue自定義指令的註冊方法和元件很像,也分為全域性註冊和區域性註冊,寫法和元件也基本差不多,只是方法名由component改為了directive。

自定義指令的選項都是由幾個鉤子函式組成的,每個都可以選擇。

(1)bind:只呼叫一次,指令第一次繫結到元素時呼叫,用這個鉤子函式可以定義乙個在繫結時執行一次的初始化動作。

(2)inserted:被繫結元素插入父節點時呼叫(父節點存在既可呼叫,不必存在於document中)。

(3)update:被繫結元素所在的模板更新時呼叫,而不論繫結值是否變化。通過比較更新前後的繫結值,可以忽略不必要的模板更新。

(4)componentupdated:被繫結元素所在模板完成一次更新週期時呼叫。

(5)unbind:只呼叫一次,指令與元素解綁時呼叫。

為了便於理解,我們來自定義v-focus功能,在、元素初始化時自動獲取焦點,**如下:

每個鉤子都有幾個引數可用,比如上面我們就用到了el。它們的含義如下:

(1)el:指令所繫結的元素,可以用來直接操作dom。

(2)binding:乙個物件,包含以下屬性:

name:指令名,不包括v-字首;

value:指令的繫結值,例如:v-my-directive="1+1",value的值是2。

oldvalue:指令繫結的前乙個值,僅在updatecomponentupdated鉤子中可用。無論值是否改變都可以用。

expression:繫結值的字串形式,例如:v-my-directive="1+1",expression的值為"1+1"。

arg:傳給指令的引數。例如:v-my-directive:foo,arg的值為foo。

modifers:乙個包含修飾符的物件。例如:v-my-directive.foo.bar,修飾符物件modifers的值是

(3)vnode:vue編譯生成的虛擬節點。

(4) oldvnode:上乙個虛擬節點,僅在updatecomponentupdated鉤子中可用。

Vue自定義指令

vue有很多內建的指令,比如說v on,v model,v clock等等,每乙個指令會完成一定的功能,但是這些內建的指令總會有些侷限性,要是能夠自定義指令就好了 vue的自定義指令分類 全域性指令和區域性指令 vue指令的定義和用法 以全域性指令為例 1.語法 vue.directive 指令id...

vue自定義指令

自定義指令主要有兩種方式。一是在元件裡以directives的選項來自定義指令的內容。這樣的自定義指令是區域性的自定義指令,只在當前的元件裡面才能使用。script export default directives arr arr.join el.style.csstext arr script ...

VUE 自定義指令

dom插入便獲取焦點 vue.directive focus 根據指令的值決定自否獲取焦點 vue.directive focus 注 被拖拽的元素必須有定位樣式 vue.directive drag function el,binding document.nm useup function 拓展...