vue自定義指令實現v model

2022-09-20 19:09:09 字數 1305 閱讀 7940

指令是vue中非常重要的內容,了解指令的用法可以更好的服務於業務場景,方便高效,本文主要介紹指令的基本概念和用法,簡單模擬v-model實現的功能。

除了內建指令,vue.js 也允許註冊自定義指令。自定義指令提供一種機制將資料的變化對映為 dom 行為。

可以用vue.directive(id, definition)方法註冊乙個全域性自定義指令,它接收兩個引數,指令 id 與定義物件。也可以用元件的directives選項註冊乙個區域性自定義指令。

定義物件可以提供幾個鉤子函式(都是可選的):

例如

vue.directive('my-directive', ,

update: function (newvalue, oldvalue) ,

unbind: function ()

})

在註冊之後,便可以在 vue.js 模板中這樣用(記著新增字首 v-):

當只需要 update 函式時,可以傳入乙個函式替代定義物件:

vue.directive('my-directive', function (value) )
所有的鉤子函式將被複製到實際的指令物件中,鉤子內 this 指向這個指令物件。這個物件暴露了一些有用的屬性:

示例:

vue.directive('demo', ,

update: function (value)

})var demo = new vue(

})

結果:

name - demo

expression - msg

argument - hello

modifiers -

value - hello!

import vue from 'vue'

vue.config.productiontip = false

vue.directive('input', = binding

const = vnode

el.value = value

el.oninput = (e) =>

},update: function () {}

})new vue({

測試:

以上實現了資料的雙向繫結,當然我們可以使用引數和修飾符實現更加複雜的功能,有興趣的同學可以學習一下。

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