指令是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 拓展...