Seajs教程

API 快速參考html

該頁面列舉了 Sea.js 的經常使用 API。只要掌握這些用法,就能夠嫺熟地進行模塊化開發。jquery

 

seajs.config異步

用來對 Sea.js 進行配置。async

seajs.config({模塊化

 

  // 設置路徑,方便跨目錄調用ui

  paths: {spa

    'arale': 'https://a.alipayobjects.com/arale',模塊化開發

    'jquery': 'https://a.alipayobjects.com/jquery'htm

  },接口

 

  // 設置別名,方便調用

  alias: {

    'class': 'arale/class/1.0.0/class',

    'jquery': 'jquery/jquery/1.10.1/jquery'

  }

 

});

seajs.use

用來在頁面中加載一個或多個模塊。

// 加載一個模塊

seajs.use('./a');

 

// 加載一個模塊,在加載完成時,執行回調

seajs.use('./a', function(a) {

  a.doSomething();

});

 

// 加載多個模塊,在加載完成時,執行回調

seajs.use(['./a', './b'], function(a, b) {

  a.doSomething();

  b.doSomething();

});

 

define

用來定義模塊。Sea.js 推崇一個模塊一個文件,遵循統一的寫法:

define(function(require, exports, module) {

 

  // 模塊代碼

 

});

 

require, exports 和 module 三個參數可酌情省略,具體用法以下。

require

require 用來獲取指定模塊的接口。

define(function(require) {

 

  // 獲取模塊 的接口

  var a = require('./a');

 

  // 調用模塊 的方法

  a.doSomething();

});

 

require.async

用來在模塊內部異步加載一個或多個模塊。

define(function(require) {

 

  // 異步加載一個模塊,在加載完成時,執行回調

  require.async('./b', function(b) {

    b.doSomething();

  });

 

  // 異步加載多個模塊,在加載完成時,執行回調

  require.async(['./c', './d'], function(c, d) {

    c.doSomething();

    d.doSomething();

  });

 

});

 

exports

用來在模塊內部對外提供接口。

define(function(require, exports) {

 

  // 對外提供 foo 屬性

  exports.foo = 'bar';

 

  // 對外提供 doSomething 方法

  exports.doSomething = function() {};

 

});

 

module.exports

與 exports 相似,用來在模塊內部對外提供接口。

define(function(require, exports, module) {

 

  // 對外提供接口

  module.exports = {

    name: 'a',

    doSomething: function() {};

  };

 

});

SeaJS使用說明

 

在頁面中加載模塊

在 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")

sea.js 在下載完成後,會自動加載入口模塊。頁面中的代碼就這麼簡單。 

模塊代碼

這個小遊戲有兩個模塊 spinning.js 和 main.js,遵循統一的寫法: 

// 全部模塊都經過 define 來定義

define(function(require, exports, module) {

 

  // 經過 require 引入依賴

  var $ = require('jquery');

  var Spinning = require('./spinning');

 

  // 經過 exports 對外提供接口

  exports.doSomething = ...

 

  // 或者經過 module.exports 提供整個接口

  module.exports = ...

 

});

相關文章
相關標籤/搜索