require.js入门

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

require([module], callback);

在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。

var math = require('math');

在define下也有所不同

1.对于依赖的模块,AMD(Asynchronous Module Definition)异步模块加载机制 是提前执行,CMD(common module definition)模块定义规范 是延迟执行。不过 RequireJS 从 2.0 开始,也改成可以延迟执行(根据写法不同,处理方式不同)。CMD 推崇 as lazy as possible.

2. CMD 推崇依赖就近,AMD 推崇依赖前置。看代码:
// CMD
define(function(require, exports, module) {
var a = require('./a')
a.doSomething()
// 此处略去 100 行
var b = require('./b') // 依赖可以就近书写
b.doSomething()
// ... 
})

// AMD 默认推荐的是
define(['./a', './b'], function(a, b) { // 依赖必须一开始就写好
a.doSomething()
// 此处略去 100 行
b.doSomething()
...
}) 

说道正题。。

先去官网下载require.js放到网页底部加载,加载一个main.js

<script type="text/javascript" src="require.js" defer async="true" data-main="main"></script>

main.js下面放

require(['math'], function (math){
    alert(math.add(1,1));
  });

math.js下面放

define(function (){
    var add = function (x,y){
      return x+y;
    };
    return {
      add: add
    };
  });

 本文参考

作者:玉伯
链接:https://www.zhihu.com/question/20351507/answer/14859415
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

和阮一峰的require.jshttp://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html

原文地址:https://www.cnblogs.com/yanwei-sun/p/5255597.html