CommonJs AMD CMD 模块加载
2015-10-23 20:37
555 查看
CommonJs 定义的是同步模块加载方案,AMD/CMD定义的是异步模块加载方案
CommonJs: 包含两大工具 require() 以及 module.exports
module.exports 用于产生一个模块,方法是将在文件末尾加入 module.exports = 该文件内的一个变量,就使得该变量成为模块
require 用于引用一个模块,例如 require("./helllo") 括号内为路径名并且不要".js"的后缀
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":
require(['math'], function (math){
alert(math.add(1,1));
});
CMD CMD定义规范中一个模块就是一个文件。代码书写格式:
更多请看: https://github.com/seajs/seajs/issues/242
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)
相关文章推荐
- javascript基础之六(函数的闭包)
- javascript基础之五(this与闭包详解)
- seajs3.0.0源码分析记录
- JS播放声音 兼容所有浏览器
- javascript基础之四(数组详解)
- javascript基础之三(对象详解)
- jsp文件开头<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 > 有什么用
- javascript基础之二(变量作用域的各种啃)
- javascript基础之一(函数)
- javascript基础一(变量与函数)
- 轻松学习JavaScript二:JavaScript语言的基本语法要求
- JS Replace全部替换字符方法
- js动态生成选项之考试系统(一)
- 如何向以json对象为元素的数组中追加一个新的元素
- JavaScript 类式继承与原型继承
- JSON和XML优缺点的比较
- js 程序执行与顺序实现详解
- js常用函数
- Tabris.js 介绍与学习<3>
- js 解析key值为数字的json的问题