一、什么是全局API?
全局API并不在構造器里,而是先聲明全局變量或者直接在Vue上定義一些新功能,Vue內置了一些全局API,比如我們今天要學習的指令Vue.directive。說的簡單些就是,在構造器外部用Vue提供給我們的API函數來定義新的功能。
二、Vue.directive自定義指令
我們在第一季就學習了內部指令,我們也可以定義一些屬于自己的指令,比如我們要定義一個v-jspang的指令,作用就是讓文字變成綠色。
在自定義指令前我們寫一個小功能,在頁面上有一個數字為10,數字的下面有一個按鈕,我們每點擊一次按鈕后,數字加1.
三、自定義指令中傳遞的三個參數
el: 指令所綁定的元素,可以用來直接操作DOM。
binding: 一個對象,包含指令的很多信息。
vnode: Vue編譯生成的虛擬節點。
四、自定義指令的生命周期
自定義指令有五個生命周期(也叫鉤子函數),分別是 bind,inserted,update,componentUpdated,unbind
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <script type="text/javascript" src="../assets/js/vue.js"></script> <title>vue.directive 自定義指令</title></head><body> <h1>vue.directive 自定義指令</h1> <hr> <div id="app"> <div v-jspang="color" id="aaa"> {{num}} </div> <p> <button @click='jia'>加分</button> </p> <p> <button onclick='unbind()'>解綁</button> </p> </div> <script type="text/javascript"> function unbind(){ app.$destroy(); } //自定義指令 Vue.directive('jspang',{ bind:function(el,binding,vnode){//被綁定 /** var s=JSON.stringify; el.innerHTML = 'name:' + s(binding.name) +'<br>' + 'value:' + s(binding.value) +'<br>' + 'expression:' + s(binding.expression) +'<br>' ; **/ el.style='color:'+binding.value; console.log('1 - bind'); }, inserted:function(){//綁定到節點 console.log('2 - inserted'); }, update:function(){//組件更新 console.log('3 - update'); }, componentUpdated:function(){//組件更新完成 console.log('4 - componentUpdated'); }, unbind:function(){//解綁 console.log('5 - unbind'); } }) var app=new Vue({ el:'#app', data:{ color:'green', num:10 }, methods:{ jia:function(){ this.num++; } } }) </script></body></html>bind:function(){//被綁定 console.log('1 - bind');},inserted:function(){//綁定到節點 console.log('2 - inserted');},update:function(){//組件更新 console.log('3 - update');},componentUpdated:function(){//組件更新完成 console.log('4 - componentUpdated');},unbind:function(){//解綁 console.log('1 - bind');}以上所述是小編給大家介紹的Vue.directive 自定義指令詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答