詳解Vue自定義指令(小白入門)

2021-10-03 03:57:50 字數 1116 閱讀 8913

使用過v-show,v-if,v-for等等的指令都可以感覺指令的好處,那麼我接下來介紹一下如果自己做乙個指令。

指令的註冊分為全域性的註冊,區域性的註冊。然後指令內部存在一些生命週期供我們進行呼叫。(逆戰疫情)

全域性註冊:

vue.

directive

("指令名"

,)

區域性註冊:

/vue例項

newvue(,

//宣告指令dire1

dire2:

,//宣告指令dire2

dire3:

,//宣告指令dire3}}

);

具體的鉤子函式(指令的生命週期內)

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

2.inserted: 被繫結元素插入父節點時呼叫,(父節點存在即可呼叫,不一定已被插入文件中)

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

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

5.unbind: 只繫結一次,指令與元素解綁時呼叫

引數詳情

大致有四個引數: el , binding , vnode , oldvnode.

這幾個引數是對位傳參,根據位置來判斷,命名合法就行。

1.el: 表示指令所繫結的元素,可用來直接操作dom

2.binging: 乙個繫結物件,主要的屬性如下:

binding =

這些屬性並不是在每乙個鉤子函式的binging引數裡都有,要看實際使用時是否含有值。

3.vnode: vue編譯生成的虛擬節點,後面介紹

4.oldvnode: 上乙個虛擬節點,僅在update和componentupdate鉤子中可用

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