Vue之自定義指令

2021-09-26 10:56:39 字數 1786 閱讀 1226

vue中有很多內建的命令,例如v-bind,v-for,v-show等等,這些指令的指責是將表示式改變時,將某些行為相應地對映到dom上。

那麼除了我們常用的vue的內建指令外,我們還可以自定義指令,常用的自定義vue全域性指令的模板如下:

這裡的focus是定義額指令的名稱,可根據指令作用換成其他名稱。

模板中的bind,inserted, updated都是vue中的鉤子函式。

鉤子函式:主要負責將作用域和dom進行鏈結;鏈結函式用來建立可以操作dom的指令。

-bind: 每當指令繫結到元素上的時候,會立即執行這個 bind 函式,且只執行一次,初始化動作。

-inserted: 插入到dom中的時候,會執行 inserted 函式【觸發1次】;

-updated:當vnode更新的時候,會執行 updated, 可能會觸發多次。

模板的中的el:表示被繫結了指令的那個元素,這個 el 引數,是乙個原生的js物件。注:在每個 函式中,第乙個引數,永遠是 el。

binding乙個物件,其包含有以下的屬性:

name— 指令的名字,不包含字首

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

oldvalue— 指令繫結的前乙個值,僅在 update 和 componentupdated 鉤 子中可用。無論值是否改變都可用。

expression— 指令的表示式,不包括引數和過濾器,繫結值的字串形式。 例如v-my-directive=」1 + 1」 , expression 的值是 「1 + 1」

arg— 傳給指令的引數。例如 v-my-directive:foo, arg 的值是 「foo」。

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

vm— 擁有該指令上下文 viemmodel

vnode— vue 編譯生成的虛擬節點。

注:以上屬性為可讀,不可去修改。

使用方法示例:

一般常用的方法,示例

a. input框自動聚焦

b. 當修改某個屬性的樣式時:

注:一般與樣式相關的操作都在bind裡面進行,如果需要更改dom節點則需要在inserted中進行。

vue私有自定義指令,一般在vm例項中定義,在這裡面定義的時候僅可以被該vm例項使用,其他vm例項不可使用。其定義方法與全域性指令的定義方法一致。

使用方法如下:

vue之自定義指令

1.如何自定義乙個指令?在export模板中加入directives選項 比如 directives bind el bind 像這樣的inserted,bind稱為鉤子函式,裡面的引數 el 代表當前指令被繫結的元件 bind 代表當前指令所繫結的元件的一些值,通常我們列印這兩個引數時,會返回整個...

Vue之自定義指令

先了解一下,在vue中,有很多內建的指令.比如 等等.所以,關於指令,我們可以總結下面幾點 2.0 vue自定義指令場景小demo 非常尬 場景 我們需要乙個指令,寫在某個html表單元素上,然後讓它在被載入到dom中時,自動獲取焦點.和自定義過濾器一樣,我們這裡定義的是全域性指令 vue.dire...

vue之自定義指令

1 自定義指令的作用 除了核心功能缺省內置的指令 v model和v show vue 也允許註冊自定義指令。注意,在 vue2.0 中,復用和抽象的主要形式是元件。然而,有的情況下,你仍然需要對普通 dom 元素進行底層操作,這時候就會用到自定義指令。參考文件 2 註冊自定義指令 1 註冊全域性自...