您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)Vue.use()和install怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
在vue的main.js中,我們經(jīng)常使用Vue.use(xx)方法。比如我們引入elementUI,在main.js中,我們一般通過如下代碼引入:
import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI)
官方解釋
安裝 Vue.js 插件。如果插件是一個(gè)對象,必須提供 install 方法。如果插件是一個(gè)函數(shù),它會(huì)被作為 install 方法。
install 方法調(diào)用時(shí),會(huì)將 Vue 作為參數(shù)傳入。什么意思呢? Vue.use() 中的參數(shù)必須是一個(gè)function函數(shù)或者是一個(gè)Object對象,如果是對象的話,必須在對象中提供一個(gè)install方法。之后會(huì)將 Vue 作為參數(shù)傳入。
總結(jié):
如果Vue.use() 中的參數(shù)是一個(gè)function函數(shù),那么函數(shù)的參數(shù)是Vue對象。
如果Vue.use() 中的參數(shù)是一個(gè)Object對象,那么這個(gè)對象必須提供一個(gè)install方法,install方法的參數(shù)就是Vue。
Vue.use注冊插件和Vue.prototype.xxx掛載方式有什么區(qū)別,使用Vue.use優(yōu)勢在哪,為什么使用Vue.use而不使用Vue.prototype.xxx
// Vue源碼文件路徑:src/core/shared/util.js export function toArray (list: any, start?: number): Array<any> { start = start || 0 let i = list.length - start const ret: Array<any> = new Array(i) while (i--) { ret[i] = list[i + start] } return ret }
// Vue源碼文件路徑:src/core/global-api/use.js import { toArray } from '../util/index' export function initUse (Vue: GlobalAPI) { Vue.use = function (plugin: Function | Object) { const installedPlugins = (this._installedPlugins || (this._installedPlugins = [])) if (installedPlugins.indexOf(plugin) > -1) { // 如果該插件已被注冊,則不再進(jìn)行注冊 return this } // additional parameters const args = toArray(arguments, 1) args.unshift(this) if (typeof plugin.install === 'function') { plugin.install.apply(plugin, args) } else if (typeof plugin === 'function') { plugin.apply(null, args) } installedPlugins.push(plugin) return this } }
install方法應(yīng)該就是解決防止插件多次注冊的情況吧;如果使用Vue.prototype.xxx掛載,每使用一次就要重新掛載一次。
關(guān)于“Vue.use()和install怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。