AMD是RequireJS在推廣過程中對模塊定義的規範化產出。 非同步載入模塊,依賴前置,提前執行。 Define定義模塊 define([‘require’,’foo’],function(){return}); Require載入模塊(依賴前置) require([‘foo’,’bar’],fun... ...
AMD是RequireJS在推廣過程中對模塊定義的規範化產出。
- 非同步載入模塊,依賴前置,提前執行。
- Define定義模塊 define([‘require’,’foo’],function(){return});
- Require載入模塊(依賴前置) require([‘foo’,’bar’],function(foo,bar){});
CMD是SeaJS在推廣過程中對模塊定義的規範化產出。
- Define定義exports 導出define(function(require,exports,module){}); module上存儲了當前模塊上的一些對象。
- require(./a)直接引入。Require.async非同步引入。
- 同步載入,依賴就近,延遲執行。
SeaJS 的應用
官方入門例子:http://seajs.org/docs/#quick-start
怎麼寫一個SeaJS模塊?
// 所有模塊都通過 define 來定義 define(function(require, exports, module) { // 通過 require 引入依賴 var $ = require('jquery'); var Spinning = require('./spinning'); // 通過 exports 對外提供介面 exports.doSomething = ... // 或者通過 module.exports 提供整個介面 module.exports = ... });
在頁面中載入模塊
在 hello.html 頁尾,通過 script 引入 sea.js 後,有一段配置代碼: // seajs 的簡單配置 seajs.config({ base: "../sea-modules/", alias: { "jquery": "jquery/jquery/1.10.1/jquery.js" } }) // 載入入口模塊 seajs.use("../static/hello/src/main")