vue自定義指令 --directive 2018-11-05

1)Vue.directive('自定義指令的名字',{

? ? ? ? ? ? inserted:function(el){? /*這個元素插入父元素的時候執(zhí)行的操作*/

? ? ? ? ? ? ? ? el.focus();

? ? ? ? ? ? }

})

2)

directives:{

? ? ? ? ? ? ? ? ? 'focus':{

? ? ? ? ? ? ? ? ? ? ? ? inserted:function(el){? /*這個元素插入父元素的時候執(zhí)行*/

? ? ? ? ? ? ? ? ? ? ? ? ? ? el.focus();

? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }


鉤子函數(shù)

bind: 只調(diào)用一次,指令第一次綁定到元素時調(diào)用,用這個鉤子函數(shù)可以定義一個在綁定時執(zhí)行一次的初始化動作。

inserted: 被綁定元素插入父節(jié)點時調(diào)用。(bind與該生命周期鉤子函數(shù)作用十分類似)

update: 被綁定元素所在的模板更新時調(diào)用,而不論綁定值是否變化。通過比較更新前后的綁定值,可以忽略不必要的模板更新。

componentUpdated: 被綁定元素所在模板完成一次更新周期時調(diào)用。




簡寫形式

1)

Vue.directive('bgcolor',function(el,binding){

? ? ? ? ? ? el.style.background=binding.value;

})

2)directives:{

? ? ? ? ? ? ? /*簡寫 表示bind 和update的時候都會執(zhí)行*/

? ? ? ? ? ? ? ? ? ? 'color':function(el,binding){?

? ? ? ? ? ? ? ? ? ? ? ? el.style.color=binding.value;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? }

例如下面將用自定義redirective實現(xiàn)拖拽:

<div id="out">

????<h1>拖拽</h1>

????<p class="a"></p>//能拖拽的標簽,我沒有寫它的樣式

????<p class="a"></p>

????<p class="a"></p>

</div>

</body>

<script>

// 這定義的是全局的自定義指令

// Vue.directive('move',function(a){

????????// a.onmousedown = function(e){

????????// var x = e.clientX;

????????// ? var y = e.clientY;

????????// document.onmousemove = function(){

????????????????????// }

????????????????// document.onmouseup = function(){

????????????????????// }

? ? ? ? ? ? ? ?// }

// })

var vm = new Vue({

????????????el:'#out',

????????????????data:{

},

methods:{

},

//direvtives:('自定義的名字',function(e){函數(shù)里面的參數(shù)指是dom元素本身

})


????????directives:('move',function(e){//局部? ? ?

????????????????????a.onmousedown = function(e){

????????????????????var x = e.clientX;

????????????????????? var y = e.clientY;

????????????????????????document.onmousemove = function(){

????????????????????????}

????????????????????document.onmouseup = function(){

????????????????????????????}

????????????????}

????????????})

})

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 在第五章中我們已經(jīng)介紹了需要Vue內(nèi)置的指令,比如v-if、v-show等,這些豐富的內(nèi)置指令能滿足我們的...
    六個周閱讀 1,817評論 2 9
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,173評論 0 29
  • 深入響應式 追蹤變化: 把普通js對象傳給Vue實例的data選項,Vue將使用Object.defineProp...
    冥冥2017閱讀 4,953評論 6 16
  • vue筆記 一.vue實例 vue的生命周期 beforeCreate(創(chuàng)建前), created(創(chuàng)建后), b...
    秋殤1002閱讀 1,125評論 0 1
  • 8 來一場說走就走的旅行,決定全家出動是在24小時前,于爸爸要去河北出差,我們商量了一下把蓄謀已久但因各種原...
    6bf9c8e672b3閱讀 326評論 0 0

友情鏈接更多精彩內(nèi)容