Vue.use()和Vue.prototype使用詳解
Vue.use()作用
官方文檔中提到,Vue.use()可以用來(lái)注冊(cè)全局的插件。使用Vue.use()后可以使得插件能夠在項(xiàng)目的任意位置上使用。
那么什么時(shí)候使用Vue.use()呢?
其實(shí)官方文檔中也給出了很詳細(xì)的答案,就是當(dāng)一個(gè)插件對(duì)象或者函數(shù),擁有install方法時(shí),就使用Vue.use()。
調(diào)用Vue.use()時(shí)會(huì)調(diào)用插件的install方法,使得其能夠全局使用。
Vue的使用場(chǎng)景
1.ElementUI、VueRouter等官方插件的使用
在vue官方社區(qū)中提供了一系列輔助開(kāi)發(fā)的插件,其中就有很多插件具有install方法,比如ElementUI和VueRouter,我們使用Vue.use()進(jìn)行引入。
import Vue from 'vue' import VueRouter from 'vue-router'; import Element from 'element-ui' Vue.use(VueRouter); Vue.use(Element);
2.自定義插件,并提供install方法
除了使用官方的插件,我們也可以自定義一些含有install方法的插件
import Icon from '../components/icon/index' const IconConponents = { // install 是默認(rèn)的方法。當(dāng)外界在 use 這個(gè)組件的時(shí)候,就會(huì)調(diào)用本身的 install 方法,同時(shí)傳一個(gè) Vue 這個(gè)類(lèi)的參數(shù)。 install: function (Vue) { Vue.component('Icon', Icon) } } // 導(dǎo)出 export default IconConponents
在main.js中進(jìn)行注冊(cè)插件
import Icon from './global' Vue.use(Icon)
Vue.prototype作用
vue.prototype是一種注冊(cè)全局變量的方式,使用vue.prototype的變量可以全局訪問(wèn)。最典型的例子就是axios。
import axios from 'axios'; Vue.prototype.$http = axios;
注冊(cè)了axios之后就能在項(xiàng)目的位置使用了,使用的方法:
調(diào)用this.$http進(jìn)行訪問(wèn)。
實(shí)際上我們還要注意,使用Vue.prototype注冊(cè)的全局變量前面都要加上$符號(hào),這是一種規(guī)范,主要是為了防止命名沖突。
Vue.use()和Vue.prototype的區(qū)別
講到這里,我們仔細(xì)看看這兩個(gè)方法的區(qū)別。
其實(shí)很顯而易見(jiàn),Vue.use()用于注冊(cè)具有install方法的變量,注冊(cè)后install函數(shù)會(huì)自動(dòng)調(diào)用,使得install的具體變量能夠全局使用,包括全局變量,全局標(biāo)簽等等。
而Vue.prototype就是一個(gè)注冊(cè)全局變量的方法,注冊(cè)的全局的變量以$開(kāi)頭,調(diào)用this方法調(diào)用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
一篇文章告訴你如何實(shí)現(xiàn)Vue前端分頁(yè)和后端分頁(yè)
這篇文章主要為大家介紹了如何實(shí)現(xiàn)Vue前端分頁(yè)和后端分頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2021-12-12Vue?處理異步加載順序問(wèn)題之如何在Konva中確保文本在圖片之上顯示
在處理Konva中的異步加載順序問(wèn)題時(shí),確保在圖像加載完成后再添加其他元素是關(guān)鍵,通過(guò)將回調(diào)函數(shù)放在imageObj.onload中,并正確處理變量捕獲,我們可以確保文本總是繪制在圖片之上,這不僅解決了顯示順序的問(wèn)題,也為未來(lái)的調(diào)試提供了明確的方向,感興趣的朋友一起看看吧2024-07-07動(dòng)態(tài)加載權(quán)限管理模塊中的Vue組件
本篇文章給大家詳細(xì)講解了如何在權(quán)限管理模塊中動(dòng)態(tài)的加載VUE組件的過(guò)程,有這方面需求的朋友跟著學(xué)習(xí)下吧。2018-01-01Vue修改iview組件的樣式的兩種方案(element同)
使用vue必然會(huì)用到等iview組件庫(kù),但是iview的組件的樣式跟自己寫(xiě)的div的樣式修改不太一樣,所以本文給大家介紹了Vue修改iview組件的樣式的兩種方案(element同),需要的朋友可以參考下2024-04-04Vue v-for循環(huán)之@click點(diǎn)擊事件獲取元素示例
今天小編就為大家分享一篇Vue v-for循環(huán)之@click點(diǎn)擊事件獲取元素示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11從源碼角度來(lái)回答keep-alive組件的緩存原理
這篇文章主要介紹了從源碼角度來(lái)回答keep-alive組件的緩存原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01vue.js頁(yè)面加載執(zhí)行created,mounted的先后順序說(shuō)明
這篇文章主要介紹了vue.js頁(yè)面加載執(zhí)行created,mounted的先后順序說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11