requireJS是什麼?架構
既然AMD是一種模塊化的規範,那麼requireJS是什麼呢,經過我這幾天的學習,我學到的requireJS就是一個採用了AMD規範的模塊加載器,它能夠根據不一樣頁面對不一樣模塊的需求,按照你的設置依次加載並執行全部的 JavaScript 文件。框架
爲何要使用requireJS?異步
以前學習了模塊化,以及正常編寫javascript會遇到的一些問題:單文件變量命名衝突問題(全局污染)、前端多人協做問題、文件依賴問題(循環依賴)、按需加載等等,而使用requireJS這樣一個模塊加載器,這些問題均可以迎刃而解了。模塊化
能夠看出,咱們使用 Require JS 主要有兩個目的:一、解耦代碼,方便代碼重用和管理;二、加速頁面加載,內置優化引擎(需服務器支持),自動異步加載依賴項,將全部須要加載的文件自動合併爲一個文件,減小 HTTP 請求。學習
requireJS如何去定義一個模塊?優化
當咱們根據模塊化的基礎概念設計模塊時,那麼requireJS是如何把咱們的設想變爲實際的模塊的呢?關鍵字:define。
define( [module-name?], [array-of-dependencies?], [module-factory-or-object] );
requireJS如何去使用一個模塊?
當咱們定義了一個模塊後如何去使用呢?關鍵字:require。
require( [array-of-module], [callback-or-object] );
備註:另外requireJS還支持許多使用方式,例如直接引用JS文件、引用非AMD規範文件等等,詳情見官網。
requireJS如何去配置模塊?
require.config( [object] );
object:配置的模塊對象,屬性包含baseUrl(根路徑)、paths(配置加載模塊路徑,格式{ "file": "path+filename" })、shim、waitSeconds等等。
還能夠將配置寫在自定義JS文件中,只需在引用requireJS文件的script標記中添加屬性data-main便可,例如:
<script data-main="main" src="require.js"></script>
main.js文件內容:
require.config({ baseUrl: "", paths : { }, shim: { } });
若是主頁中有入口的require,那麼建議放到main.js文件中。
是否是對requireJS有一個認識了呢,^_^