国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解Vue.directive 自定義指令

2019-11-19 11:56:06
字體:
來源:轉載
供稿:網友

一、什么是全局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

  1. bind:只調用一次,指令第一次綁定到元素時調用,用這個鉤子函數可以定義一個綁定時執行一次的初始化動作。
  2. inserted:被綁定元素插入父節點時調用(父節點存在即可調用,不必存在于document中)。
  3. update:被綁定于元素所在的模板更新時調用,而無論綁定值是否變化。通過比較更新前后的綁定值,可以忽略不必要的模板更新。
  4. componentUpdated:被綁定元素所在模板完成一次更新周期時調用。
  5. 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 自定義指令詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦淖尔市| 抚远县| 夏邑县| 松滋市| 琼结县| 察隅县| 通山县| 泽普县| 五常市| 大石桥市| 华池县| 杭锦后旗| 桦川县| 澄城县| 兴业县| 丽水市| 姚安县| 万盛区| 西乌珠穆沁旗| 汨罗市| 四子王旗| 上饶县| 昂仁县| 牙克石市| 金山区| 岑溪市| 中超| 阜康市| 黄大仙区| 石家庄市| 阳信县| 浙江省| 饶阳县| 香港 | 拉萨市| 台北县| 沭阳县| 荣成市| 和顺县| 库伦旗| 内黄县|