溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Vue.use()和install怎么用

發(fā)布時(shí)間:2022-03-29 11:43:19 來源:億速云 閱讀:212 作者:小新 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Vue.use()和install怎么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

Vue.use()和install用法

介紹

在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為什么要使用install

疑問

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
  }
}

vue官網(wǎng)是這樣說的

Vue.use()和install怎么用

install方法應(yīng)該就是解決防止插件多次注冊的情況吧;如果使用Vue.prototype.xxx掛載,每使用一次就要重新掛載一次。

關(guān)于“Vue.use()和install怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI