layui原始碼詳細分析系列之模組載入機制

2021-08-04 09:33:41 字數 1446 閱讀 5240

這個系列的文章主要是分析layui原始碼,所以文章是針對於主要的功能或者單獨的內建模組來書寫的,本章主要分析layui框架自己的模組載入機制的實現。

該框架的模組載入機制主要是使用define和use這兩個方法來實現的,define方法適用於定義模組,use方法是用於使用模組,它們都定義在lay建構函式的原型物件上,而window.layui = new lay();,所以可以通過layui.define、layui.use來直接呼叫。

define以及use方法的定義如下:

lay.fn.define = function

(deps, callback) ;

lay.fn.use = function

// 相關處理**

};

index.js檔案**如下:

layui.define(['layer'], function

(exports) );

})

在html檔案中使用index模組:

layui.config().use('index');

2、直接使用use方法

layui.use(['layer'], function

() );

本章就使用第一種方式來講解layui框架的模組載入機制,例子就使用上面1中的例子,具體分析步驟如下:

1、先分析index.js中define方法的邏輯處理

2、再分析use方法的邏輯處理

我詳細分析了define方法執行的每一步並繪製了邏輯圖,具體如下:

具體的步驟如上圖所示,實際上define還會呼叫use方法,雖然define方法是定義模組的實際上還呼叫了use方法。

use方法的邏輯處理的每一步分析,實際上在define中就具體分析了,在單獨使用use的過程中,大部分地處理是相同的,但還是有所區別,具體如下圖所示:

因為相關的邏輯分析細節比較多,通過圖的方式會更加直觀,文字描述會比較繁瑣。

具體的**分析注釋以及邏輯分析圖我會上傳到我的github上,該框架的模組載入機制主要就是通過define以及use來實現,內部實際上維護了config.status來記錄模組的載入狀態,維護config.modules來儲存模組的url,內部通過script標籤來載入模組。

通過今天的學習,對於簡單模組載入機制有了一定的認知,對於物件導向以及相關**的組織也有了一定的理解,不出意外,明天會分析element.js模組。

致遠行的你我

const詳細分析

最近在分析 linux 驅動的過程過程中遇到一些關於 const 的使用,現在在這裡詳細剖析一下 一,const int p 首先分析一下幾個概念 1 p 是乙個指標變數,因而它也是乙個變數,所謂變數就有變數的位址和變數的值,而這裡 p變數的值就是乙個位址,該位址下存放的是乙個整數,p的值等於這個整...

約數詳細分析

約數詳細分析 我們先來認識一下約數 約數分正約數和負約數兩種,我們一般只討論正約數。也就是說,接下來所提的約數,只考慮正約數。如果有乙個數k,滿足k n,那麼k就是n 的約數 因數 n是k的倍數。求乙個數的約數是資訊學競賽裡乙個基礎的不能再基礎的問題。如果只求乙個數,最容易想到的就是列舉。當然列舉也...

vue cli 詳細分析

vue lic 是 vue 官方提供的腳手架工具,預設搭建好乙個專案的基本架子,我們只需要在此基礎上進行相應的修改即可。注意 安裝 vue cli 前需要事先配置好 node 環境 npm install g vue cli 如果是 mac 電 sudo表示以管理員的許可權 sudo install...