javascript的模块化解读

本文介绍了AMD和CMD两种前端模块化开发规范。AMD由RequireJS提出,支持异步加载模块,依赖前置;CMD则源自SeaJS,采用同步加载方式,依赖就近。文章通过实例展示了如何使用SeaJS进行模块开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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")
开始做,坚持做,重复做
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值