Vue中自定義指令
Vue中除了內建指令,也允許註冊自定義的指令。
自定義指令提供一種將資料的變化對映為DOM的行為
例如:當我們想用一個函式表示焦點
Vue.directive('abc',{ inserted:function(el){//el為指令所繫結的元素 el.focus(); } } )
定義以後那我們該怎麼使用呢
<input type="text" v-abc>
1)鉤子函式
-
bind
:只呼叫一次,指令第一次繫結到元素時呼叫。。 -
inserted
:被繫結元素插入父節點時呼叫 (僅保證父節點存在,但不一定已被插入文件中)。 -
update
:所在元件的 VNode 更新時呼叫 -
componentUpdated
:指令所在元件的 VNode 及其子 VNode 全部更新後呼叫。 -
unbind
:只呼叫一次,指令與元素解綁時呼叫。
而鉤子函式的使用方式
Vue.directive('abc',{ bind:function(){ //指令繫結元素時呼叫 } update:function(newVlue,oldVlue){ //每次變化更新時呼叫 } unbind:function(){ //指令解除繫結元素時呼叫 } } )
2)指令函式引數:
-
el
:指令所繫結的元素,可以用來直接操作 DOM。 -
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
中,修飾符物件為{ foo: true, bar: true }
。 -
vnode
:Vue 編譯生成的虛擬節點。 -
oldVnode
:上一個虛擬節點,僅在update
和componentUpdated
鉤子中可用。
3)物件字面量
如果指令需要多個值,則可以傳入一個JavaScript物件字面量,指令可以使用任意合法的JavaScript表示式
4)字面修飾符
當指令使用了字面修飾符時,它的值將按普通的字串處理並傳遞給update方法,update方法只呼叫一次,因為普通字串不能響應資料變化
5)元素指令
有時我們想自定義元素的形式使用指令,而不是屬性,這個時候就需要元素指令
HTML:
<body> <abc> </abc> </bode>
Vue:
Vue.elementDirective('abc',{ bind:function(){ console.info(this.el.classname) console.info(this.el.getAttribute("name")) } })
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2678687/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Vue 中「自定義指令」的魅力Vue
- vue 自定義指令Vue
- Vue自定義指令Vue
- vue如何自定義指令?Vue
- vue系列自定義指令(三)Vue
- Vue3 自定義指令Vue
- 在Vue3中實現自定義指令Vue
- Vue學習(二)自定義指令Vue
- Vue 3自定義指令開發Vue
- vue3.0自定義指令(drectives)Vue
- web前端vue:自定義指令directiveWeb前端Vue
- 【譯】vue 自定義指令的魅力Vue
- 深入解析Vue.directive 自定義指令Vue
- vue自定義指令(Directive中的clickoutside.js)的理解VueIDEJS
- Vue.js第十課 自定義指令Vue.js
- vue-自定義指令-實現提示功能Vue
- 『手撕Vue-CLI』新增自定義指令Vue
- Vue.js自定義指令的用法與例項Vue.js
- vue自定義指令擷取圖片中心顯示Vue
- 分享8個非常實用的Vue自定義指令Vue
- vue 自定義指令外掛升級 2.0 的坑Vue
- vue 自定義指令實現資料拉取更新Vue
- ng自定義指令
- Vue自定義指令實現載入中效果v-load(不使用Vue.extend)Vue
- 走進AngularJs(四)自定義指令----(中)AngularJS
- Vue從甜小白到皮大佬系列(四) 自定義指令Vue
- app直播原始碼,vue 自定義指令過濾特殊字元APP原始碼Vue字元
- 直播商城原始碼,vue 自定義指令過濾特殊字元原始碼Vue字元
- vue17自定義指令(有引數,無引數)Vue
- 面向Vue新人:使用Vue自定義指令來完善一個Select元件Vue元件
- vue中自定義指令,限制input值為number和小數點的位數Vue
- 自定義檢視指令
- gitSource 自定義指令碼Git指令碼
- AngularJS - 自定義指令AngularJS
- Vue自定義指令實現input限制輸入正整數Vue
- 直播軟體原始碼,vue 自定義指令過濾特殊字元原始碼Vue字元
- VUE2第五天學習---自定義指令Vue
- vue2.0自定義指令,用touch事件替換scroll事件Vue事件