當我寫這篇文章的時候,sea.js已經逐漸退出歷史的舞台,詳細鏈結。不過任何新事物的出現都是對舊事物的取其精華,去其糟粕,所以了解一下以前模組的載入也是一件好事。
js模組化的原因自不比多說,看看hux同學的js模組載入七日談就知道了,將的非常詳細。
乙個js檔案就是乙個模組,定義如下:define(factory);
1.factory是乙個函式
define(function(require,exports,module);
或者define(function(require,exports,module)
另外,在require方法中還有乙個非同步載入方式:
require.async('./b',function(b)
});或者,
define("hello ,llei");
//id是模組識別符號,depends是依賴的模組。
define(id,[depends],function(require,exports,module));
針對上面的不合理之處,那麼直接使用cmd規範不就好了,然而:
不能直接壓縮:require
是區域性變數,意味著不能直接的通過壓縮工具進行壓縮,若require
這個變數被替換,載入器與自動化工具將無法獲取模組的依賴。
模組書寫有額外約定:路徑引數不能進行字串運算,不能使用變數代替,否則載入器與自動化工具無法正確提取路徑。
JS 模組化AMD和CMD
函式封裝 物件 立即執行函式 模組化規範 是一種專案的構架模式,這種構架模式讓js 重用性變得非常高,讓專案構架的一些複雜問題全部得以解決。例如,多個script標籤不會再出現了,我們只要用乙個script標籤進行引入就可以了。模組化那有兩個規範,amd規範和cmd規範,當然還有針對於nodejs後...
瀏覽器端模組載入器AMD和CMD
1.amd 非同步模組定義 amd 瀏覽器端模組化開發的規範。使用amd規範快發需要用到對應的庫函式requirejs,也即amd是requirejs在推廣過程中對模組定義的規範化的產出。requirejs主要解決兩個問題 requirejs作用 requirejs使用 引用載入自己寫的js檔案 j...
初識AMD和CMD模組化
今天發現了阮一峰大牛的部落格,收藏一下裡邊有好多文章值得讀哦 amd asynchronus module definition 非同步模組定義 語法 define id dependents factory amd 是 requirejs 在推廣過程中對模組定義的規範化產出。amd規範 cmd c...