vue自定義指令

2021-09-27 10:47:13 字數 1683 閱讀 1021

其中:引數1:指令的名稱,不需要加v-字首   em:focus

注意呼叫的時候必須在指令前加

v-字首em:

v-focus

引數2:是乙個物件,有一些指令相關的鉤子函式

最主要以下前三個鉤子函式:

bind : function () {}              //

當元素繫結到元素上,只執行一次

inserted : function () {}        //

當元素插入到

dom中時,會觸發一次

inserted

updated : function () {}        //

當vnode

更新時,可能觸發多次

updated

componentupdated: function () {},

unbind: function () {}

bind在記憶體的dom樹中呼叫,和樣式相關的一般用bind

inserted在頁面的js行為中呼叫,和行為相關的一般用inserted

例如:

vue.directive('focus',,

inserted:function(el),

updated:function(el)

})

大多數情況下,我們可能想在bind和update鉤子函式上做重複動作,並且不關心其他的鉤子函式,可以簡寫為

vue.directive('color',function(el,binding))
第乙個引數是el

,第二個引數是

binding

物件,名稱可以自定義

舉個栗子:用於拿自定義指令傳來的引數值設定顏色

---------------------------------------

vue.directive('color',,                                         

})

binding

物件有多個屬性:

name

:指令名,不包括

v-字首

value

:指令的繫結值,會自動計算

例如v-my="1+1" value值為2

expression

:指令的繫結值,原樣返回不計算

例如v-my="1+1" expression

值為"1+1"

arg:指令的傳參

例如v-my:foo   arg

值為"foo"

var vm2 = new vue(,

directives:}}

})

beforemount(){}, // 在繫結元素的父元件被掛載之前呼叫

mounted(){}, // 當繫結元素的父元件被掛載時呼叫

beforeupdate(){}, // 在包含元件的vnode更新之前呼叫

updated(){}, // 在包含元件的vnode更新時呼叫

beforeunmount(){}, // 在繫結元素的父元件解除安裝之前呼叫

unmounted(){} // 在繫結元素的父元件解除安裝時呼叫})

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 拓展...