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

首頁 > 語言 > JavaScript > 正文

詳解Vue.directive 自定義指令

2024-05-06 15:41:19
字體:
供稿:網(wǎng)友

一、什么是全局API?

全局API并不在構(gòu)造器里,而是先聲明全局變量或者直接在Vue上定義一些新功能,Vue內(nèi)置了一些全局API,比如我們今天要學(xué)習(xí)的指令Vue.directive。說的簡單些就是,在構(gòu)造器外部用Vue提供給我們的API函數(shù)來定義新的功能。

二、Vue.directive自定義指令

我們?cè)诘谝患揪蛯W(xué)習(xí)了內(nèi)部指令,我們也可以定義一些屬于自己的指令,比如我們要定義一個(gè)v-jspang的指令,作用就是讓文字變成綠色。

在自定義指令前我們寫一個(gè)小功能,在頁面上有一個(gè)數(shù)字為10,數(shù)字的下面有一個(gè)按鈕,我們每點(diǎn)擊一次按鈕后,數(shù)字加1.

三、自定義指令中傳遞的三個(gè)參數(shù)

el: 指令所綁定的元素,可以用來直接操作DOM。

binding:  一個(gè)對(duì)象,包含指令的很多信息。

vnode: Vue編譯生成的虛擬節(jié)點(diǎn)。

四、自定義指令的生命周期

自定義指令有五個(gè)生命周期(也叫鉤子函數(shù)),分別是 bind,inserted,update,componentUpdated,unbind

    bind:只調(diào)用一次,指令第一次綁定到元素時(shí)調(diào)用,用這個(gè)鉤子函數(shù)可以定義一個(gè)綁定時(shí)執(zhí)行一次的初始化動(dòng)作。 inserted:被綁定元素插入父節(jié)點(diǎn)時(shí)調(diào)用(父節(jié)點(diǎn)存在即可調(diào)用,不必存在于document中)。 update:被綁定于元素所在的模板更新時(shí)調(diào)用,而無論綁定值是否變化。通過比較更新前后的綁定值,可以忽略不必要的模板更新。 componentUpdated:被綁定元素所在模板完成一次更新周期時(shí)調(diào)用。 unbind:只調(diào)用一次,指令與元素解綁時(shí)調(diào)用。
<!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(){//綁定到節(jié)點(diǎn)        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>            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 顺义区| 大英县| 金山区| 红桥区| 扬州市| 诏安县| 英吉沙县| 永仁县| 湖南省| 江油市| 阿巴嘎旗| 河南省| 渑池县| 册亨县| 上栗县| 滨海县| 景谷| 天柱县| 铁力市| 石景山区| 罗平县| 辉南县| 铁力市| 丹阳市| 湘潭市| 德化县| 定安县| 伊宁县| 侯马市| 古交市| 天台县| 全南县| 游戏| 崇仁县| 准格尔旗| 平湖市| 双辽市| 濮阳市| 常德市| 梁河县| 常德市|