随着JS越來越龐大,已經不僅僅是以前複制粘貼做特效的時代了,JS越來越偏向于業務邏輯與應用。恰逢Node的流行,JS在web開發中占有越來越重要的地位。由于JS代碼龐大,檔案數目多,傳統的使用<script src=""></script>會帶來很多性能的問題,是以requirejs可以為我們提供兩種解決思路: 1 子產品化組織JS 2 異步加載JS檔案 有了這兩種解決辦法,能有效的幫助我們解決前端代碼庫的組織難題。 本文下面就模拟一個小例子,由于并沒有應用實踐,是以命名很戳,還請見諒。
/public
|------require.js、config.js、index.html
|-------lib/
|-------a.js、b.js
|-------orthers/
|-------c.js
require.js:
其中requirejs的核心代碼就是require.js檔案,可以從官方網站上下載下傳:
config.js:
用于配置requirejs的相關内容,可以設定檔案目錄,加載子產品命名比對,以及一些依賴關系等等。
index.html:
我們的測試頁面或者網址首頁。
/lib/a.js和/lib/b.js 以及 /others/c.js
是測試的子產品js檔案。
index.html
<a></a>
其中,data-main指定主要的配置檔案;src為requirejs的檔案。
config.js
baseUrl指定所有檔案的主要目錄,paths配置子產品名字以及其比對的加載路徑。
當有需要使用某些子產品時,就可以通過require([xxx],function(xxx){xxx});的方式使用。
a.js
b.js
c.js
子產品化檔案,一般是一個功能是一個檔案。檔案的名字,就是上面requireconfig中配置的子產品名字。require加載檔案時,會自動加上.js字尾。
當某些子產品依賴其他子產品時,可以通過define([xxx],function(xxx){yyy});的方式添加依賴關系,require會在異步加載後,自動調整次序。
當通路index.html時,會先加載require.js然後把需要加載的檔案都通過appendChild的方式,添加到index.html的底部。
是以會先彈出index對話框,當執行config.js的後半部分代碼時,會依次使用a.js b.js c.js,是以也會依次彈出三個對話框。