欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue.use()的作用及原理解析

 更新時間:2022年09月02日 08:43:25   作者:國服第一摸魚選手???????  
這篇文章主要介紹了Vue.use()的作用及原理解析,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

前言

最近幫忙面試前端的時候,就隨口一問,發(fā)現(xiàn)很多2年以上的vue開發(fā)者說不出vue.use()為什么用,什么時候用,原理是什么
所以我整理一下網(wǎng)上的資源,寫一篇畢竟容易理解的文章

在Vue中引入使用第三方庫通常我們都會采用import的形式引入進來,但是有的組件在引入之后又做了Vue.use()操作,有的組件引入進來又進行了Vue.prototype.$something = something,那么它們之間有什么聯(lián)系呢?

先說一下Vue.prototype,在Vue項目中通常我們引入axios來進行請求接口數(shù)據(jù),通過npm安裝之后我們只需在我們的文件中import axios from "axios"就可以使用,有時候我們會加上一句Vue.prototype.$axios = axios,prototype我們應(yīng)該是再熟悉不過了

Vue.prototype.axios,通過我們會在全局注冊這個方法,然后在周后的文件中都可以通過$axios直接來使用axios

Vue.use是什么?

官方對 Vue.use() 方法的說明:通過全局方法 Vue.use() 使用插件,Vue.use 會自動阻止多次注冊相同插件,它需要在你調(diào)用 new Vue() 啟動應(yīng)用之前完成,Vue.use() 方法至少傳入一個參數(shù),該參數(shù)類型必須是 Object 或 Function,如果是 Object 那么這個 Object 需要定義一個 install 方法,如果是 Function 那么這個函數(shù)就被當做 install 方法。在 Vue.use() 執(zhí)行時 install 會默認執(zhí)行,當 install 執(zhí)行時第一個參數(shù)就是 Vue,其他參數(shù)是 Vue.use() 執(zhí)行時傳入的其他參數(shù)。就是說使用它之后調(diào)用的是該組件的install 方法。

Vue.use() 的源碼中的邏輯

export function initUse (Vue: GlobalAPI) {
 Vue.use = function (plugin: Function | Object) {
  const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))
  if (installedPlugins.indexOf(plugin) > -1) {
   return this
  }
  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
 }
}

在源碼中首先限制了它傳入的值的類型只能是Function或者Object,然后判斷了該插件是不是已經(jīng)注冊過,防止重復注冊,然后調(diào)用了該插件的install方法,源碼中也有介紹到Vue.use()可以接受多個參數(shù)的,除第一個參數(shù)之后的參數(shù)我們都是以參數(shù)的形式傳入到當前組件中。

Vue.use()什么時候使用?

它在使用時實際是調(diào)用了該插件的install方法,所以引入的當前插件如果含有install方法我們就需要使用Vue.use(),例如在Vue中引用Element如下:

import Vue from 'vue'
import Element from 'element-ui'
Vue.use(Element)

因為在Element源碼中會暴露除install方法,所以才需要用Vue.use()引入。

我們也可以在自己的vue項目中自己定義一個install方法,然后通過Vue.use()方法來引入測試一下:

const plugin = {
  install() {
    alert("我是install內(nèi)的代碼")
  },
}
import Vue from "vue"
Vue.use(plugin) // 頁面顯示"我是install內(nèi)的代碼"

當我們打開頁面就會彈出“我是install內(nèi)的代碼”提示。

到此這篇關(guān)于Vue.use()的作用及原理解析的文章就介紹到這了,更多相關(guān)Vue.use()作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js實現(xiàn)無限加載與分頁功能開發(fā)

    Vue.js實現(xiàn)無限加載與分頁功能開發(fā)

    這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)無限加載與分頁功能開發(fā)實踐,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • vue學習之mintui picker選擇器實現(xiàn)省市二級聯(lián)動示例

    vue學習之mintui picker選擇器實現(xiàn)省市二級聯(lián)動示例

    本篇文章主要介紹了vue學習之mintui picker選擇器實現(xiàn)省市二級聯(lián)動示例,非常具有實用價值,需要的朋友可以參考下
    2017-10-10
  • Vue項目History模式404問題解決方法

    Vue項目History模式404問題解決方法

    本文主要解決Vue項目使用History模式發(fā)布到服務(wù)器Nginx上刷新頁面404問題。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 詳解Vue打包優(yōu)化之code spliting

    詳解Vue打包優(yōu)化之code spliting

    這篇文章主要介紹了詳解Vue打包優(yōu)化之code spliting,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • vue中keepAlive組件的作用和使用方法詳解

    vue中keepAlive組件的作用和使用方法詳解

    vue里提供了keep-alive組件用來緩存狀態(tài),這篇文章主要給大家介紹了關(guān)于vue中keepAlive組件的作用和使用方法的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • Vue.js實現(xiàn)圖片切換功能

    Vue.js實現(xiàn)圖片切換功能

    這篇文章主要為大家詳細介紹了Vue.js實現(xiàn)圖片切換功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • vue3中實現(xiàn)圖片壓縮的示例代碼

    vue3中實現(xiàn)圖片壓縮的示例代碼

    圖片壓縮是一種比較便捷的壓縮方式,本文主要介紹了vue3中實現(xiàn)圖片壓縮的示例代碼,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • Vue入門學習筆記【基本概念、對象、過濾器、指令等】

    Vue入門學習筆記【基本概念、對象、過濾器、指令等】

    這篇文章主要介紹了Vue入門學習筆記,結(jié)合實例形式分析了vue.js的基本概念、對象、過濾器、指令等的相關(guān)原理與簡單使用方法,需要的朋友可以參考下
    2019-04-04
  • vue.js 表格分頁ajax 異步加載數(shù)據(jù)

    vue.js 表格分頁ajax 異步加載數(shù)據(jù)

    Vue.js通過簡潔的API提供高效的數(shù)據(jù)綁定和靈活的組件系統(tǒng).這篇文章主要介紹了vue.js 表格分頁ajax 異步加載數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • vue實現(xiàn)全屏滾動效果(非fullpage.js)

    vue實現(xiàn)全屏滾動效果(非fullpage.js)

    這篇文章主要為大家詳細介紹了vue實現(xiàn)全屏滾動效果,非fullpage.js,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評論