vue use原始碼解析

2021-10-23 14:37:16 字數 1144 閱讀 7867

vue可以通過外掛程式擴充套件其全域性功能。外掛程式的使用也很簡單,使用vue.use(plugin)進行註冊後就可以全域性使用。下面通過原始碼來看看是如何實現的

vue.use的定義是在 src/core/global-api/use.js 這個檔案裡邊。

export

function

inituse

(vue: globalapi)

// additional parameters

const args =

toarray

(arguments,1)

// 將傳入的引數轉換成陣列

console.

log(args)

args.

unshift

(this

)// 把當前的vue物件this插入轉化後的陣列前if(

typeof plugin.install ===

'function'

)elseif(

typeof plugin ===

'function'

) installedplugins.

push

(plugin)

// 儲存已註冊外掛程式

return

this

}}

toarray()

src/share/util.js

export

function

toarray

(list: any, start?

: number)

: array

return ret

}

vue.use呼叫過程:

vue.use接受乙個plugin引數,通過判斷是否已註冊來阻止多次註冊同乙個plugin。

呼叫toarray方法將引數轉換成陣列後,將當前的vue物件插入陣列前

將註冊後的外掛程式進行儲存,避免重複註冊。

var plugin =

,addmethod

(vue)}}

vue.

use(plugin)

通過this.log就可直接呼叫console.log方法

Fabric 原始碼解析 原始碼目錄解析

這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...

Integer原始碼解析

public class test else integer i3 200 integer i4 200 if i3 i4 else 結果為 原因integer 類會快取 128 到 127 之間的整數 但是如果new interger的話就是不同的物件了 源 分析 如果是在 128到正的127之間...