2-1.Vue2.0-全局API

一、什么是全局API?
說的簡單些就是,在構(gòu)造器外部用Vue提供給我們的API函數(shù)來定義新的功能。
二、Vue.directive自定義指令
比如自己定義一個v-qiang的指令
例子如

    <div >
        <mu-ripple class="mu-ripple-demo demo-3" color="red" :opacity="0.5">
          <p v-qiang="color" >Click Me</p>
        </mu-ripple>
    </div>
</template>
<script>
    import Vue from 'vue'
    Vue.directive('qiang',function(el,binding){
        console.log('el -----'+el);
        console.log('name就只自定義命令名字 -----'+binding.name);
        console.log('value得到值 -----'+binding.value);
        console.log('expression得到變量名字 -----'+binding.expression);
        el.style='color:'+binding.value;
    });
    export default {
        name: 'Game',
        data () {
            return {
                color:'red',
            }
        }
    }
</script>

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

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

binding: 一個對象,包含指令的很多信息。

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

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

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

bind:只調(diào)用一次,指令第一次綁定到元素時調(diào)用,用這個鉤子函數(shù)可以定義一個綁定時執(zhí)行一次的初始化動作。
inserted:被綁定元素插入父節(jié)點時調(diào)用(父節(jié)點存在即可調(diào)用,不必存在于document中)。
update:被綁定于元素所在的模板更新時調(diào)用,而無論綁定值是否變化。通過比較更新前后的綁定值,可以忽略不必要的模板更新。
componentUpdated:被綁定元素所在模板完成一次更新周期時調(diào)用。
unbind:只調(diào)用一次,指令與元素解綁時調(diào)用。

template>
    <div >
        <mu-ripple class="mu-ripple-demo demo-3" color="red" :opacity="0.5">
          <p v-qiang="color" >Click Me</p>
        </mu-ripple>
    </div>
</template>
<script>
    import Vue from 'vue'
    Vue.directive('qiang',{
        bind:function(){//被綁定
            console.log('1 - bind');
        },
        inserted:function(){//綁定到節(jié)點
            console.log('2 - inserted');
        },
        update:function(){//組件更新
            console.log('3 - update');
        },
        componentUpdated:function(){//組件更新完成
            console.log('4 - componentUpdated');
        },
        unbind:function(){//解綁
            console.log('1 - bind');
        }
    });
    export default {
        name: 'Game',
        data () {
            return {
                color:'red',
            }
        }
    }
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,185評論 0 29
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,381評論 0 6
  • 全局API介紹 全局API并不在構(gòu)造器里,而是先聲明全局變量或者直接在Vue上定義一些新功能,Vue內(nèi)置了一些全局...
    郭少華閱讀 968評論 0 1
  • 上一章帝鄉(xiāng)山以北有一片土地,現(xiàn)在叫輾,從前叫陌,未來有一天也會叫陌。 陌這片土地上狼群遍地,常年積雪,政權(quán)動蕩,偶...
    長歌霧后閱讀 521評論 0 1
  • 我現(xiàn)在特別煩 怎么辦呢 沒有一個說話的人 字帖也不在身邊 所以 就應(yīng)該獨處呀 說想說的話 不怕人笑話 該釋放情緒就...
    二人余安閱讀 151評論 0 0

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