vue自定義指令directive

2021-10-09 15:15:05 字數 1637 閱讀 5144

1、指令的使用

>

v-dir1

v-color="

'red'

">

div>

type

="text"

v-focus

/>

div>

2、建立區域性指令
// 

newvue(,

// 建立指令(可以多個)

directives:},

color:}}

)

3、全域性指令,一般在main.js中定義
// 

// 為繫結的元素自動獲取焦點:

vue.

directive

('focus',}

);

乙個指令定義物件可以提供如下幾個鉤子函式 (均為可選):

inserted:被繫結元素插入父節點時呼叫 (僅保證父節點存在,但不一定已被插入文件中)。

bind:只呼叫一次,指令第一次繫結到元素時呼叫。在這裡可以進行一次性的初始化設定。

update:所在元件的 vnode 更新時呼叫,但是可能發生在其子 vnode 更新之前。指令的值可能發生了改變,也可能沒有。但是你可以通過比較更新前後的值來忽略不必要的模板更新 (詳細的鉤子函式引數見下)。

componentupdated:指令所在元件的 vnode 及其子 vnode 全部更新後呼叫。

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

el:指令所繫結的元素,可以用來直接操作 dom 在每個函式中,第乙個引數el ,表示被繫結了指令的那個元素,這個 el 引數,是乙個原生的js物件。

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

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

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

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

expression:字串形式的指令表示式。例如 v-my-directive=「1 + 1」 中,表示式為 「1 + 1」。

arg:傳給指令的引數,可選。例如 v-my-directive:foo 中,引數為 「foo」。

modifiers:乙個包含修飾符的物件。例如:v-my-directive.foo.bar 中,修飾符物件為 。

oldvnode:上乙個虛擬節點,僅在 update 和 componentupdated 鉤子中可用。

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