vue自定義指令

2022-09-12 12:06:26 字數 1604 閱讀 4138

一、自定義指令是用來操作dom的,儘管vue推崇資料驅動試圖的理念,但並非所又情況都適合資料驅動。自定義指令就是一種有效的補充和擴充套件,不僅僅可用於定義任何dom操作,並且是可以復用的『

比如谷歌的載入做的非常優雅,在未完成載入前,用隨機的背景色佔位背景載入晚成後才直接渲染出來。用自定義只能怪可以非常方便的實現這個功能。

//

vue.directive(指令名,指令要做的操作)

自定義指令的第二用處是用於整合第三方外掛程式。在前端開發領域,以前的通用框架是jquery,jquery以及基於jquery的通用元件形成了乙個龐大的生產系統。現在的通用框架是vue等,每個框架都需要基於自身構建新的元件庫。自定義指令好就好在:原先的那些通用的元件,無論是純js的也好,基於jquery的也好,都可以直接拿來吸收,不需要改造或重構。比如寫文件通常會用到的highlight.js,我們可以直接將其封裝為乙個自定義指令。

二、vue自定義指令包括4部分:指令名稱、引數、修飾符、表示式

三、自定義指令有全域性註冊指令、區域性註冊指令。全域性註冊指令又分函式註冊形式、物件註冊形式。

全域性註冊指令,使用vue的directive函式實現

//

函式註冊形式示例:

vue.directive('

dire

',function(el,bindings,vnode));

引數說明:

dire 指令名稱

el 當前繫結的dom元素

bindings 指令解析後的結果,包括指令名稱、引數、表示式等,bindings.vaule返回的是表示式

vnode 對應的虛擬dom

物件註冊形式示例:

vue.directive(

'dire',,

inserted:function(el,bindings,vnode),

update:function(el,bindings,vnode),

componentupdated:function(el,bindings,vnode),

unbind:function(el,bindings,vnode)

});

區域性註冊指令示例:

var vm = new

vue(,

directives:,

inserted:function(el,bindings,vnode),

update:function(el,bindings,vnode),

componentupdated:function(el,bindings,vnode),

unbind:function(el,bindings,vnode)}}

});

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