CommonJs AMD CMD 模块加载

CommonJs 定义的是同步模块加载方案,AMD/CMD定义的是异步模块加载方案

CommonJs:  包含两大工具 require() 以及 module.exports

      module.exports 用于产生一个模块,方法是将在文件末尾加入 module.exports = 该文件内的一个变量,就使得该变量成为模块

      require 用于引用一个模块,例如 require("./helllo") 括号内为路径名并且不要".js"的后缀

      

//举例
// moduleA.js
module.exports = function( value ){
    return value*2;
}

// moduleB.js
var multiplyBy2 = require('./moduleA');
var result = multiplyBy2( 4 );

 

AMD  RequireJS 在推广过程中对模块定义的规范化产出

    - define(id?, dependencies?, factory); 

      - id 可选参数,字符串类型。独一无二,id即为模块的id.如果id参数存在,那么id参数必须是顶层或者绝对id(而不是相对id)

      - dependencies 可选参数,id列表,用于指出该模块的依赖模块,依赖模块的id可能是相对id。如果dependencies参数不存在,模块加载器有可能扫描factory函数来获得相关的依赖模块。当模块加载器加载该模块时,会先加载依赖模块

      - factory 必要参数,函数类型或者object类型。若为函数类型,该函数只能被执行一次,若为object类型,则应该作为模块的输出

    

 
     

  Sets up the module with ID of "alpha", that uses require, exports and the module with ID of "beta":

 
     
   define("alpha", ["require", "exports", "beta"], function (require, exports, beta) { exports.verb = function() { return beta.verb(); //Or: return require("beta").verb(); } });

An anonymous module that returns an object literal: define([
"alpha"], function (alpha) { return { verb: function(){ return alpha.verb() + 2; } }; }); A dependency-free module can define a direct object literal: define({ add: function(x, y){ return x + y; } });

加载方法

  require(['math'], function (math){

 
      

    alert(math.add(1,1));

 
      

  });

 

CMD  CMD定义规范中一个模块就是一个文件。代码书写格式:

    更多请看: https://github.com/seajs/seajs/issues/242

    define(id?, deps?, factory)

    require(id)

    require.async(id, callback?)

    require.resolve(id)

  

posted on 2015-10-23 20:37  梦见世界 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lifeisshort/p/4905617.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值