require.js

前面我们已经初步认识了模块化,今天就更深入的了解一下模块化!下面是我今天所学到的,虽然还有不懂的,后面我会弄懂的,下面是我分享的今天的收获!

模块化的规范:我们必须要用同样的方法来写,如果不是这样,我们各自写各自的,那样就乱了!Javascript模块规范共有两种:CommonJSAMD

CommonJS中,有一个全局性方法require(),require()用于加载模块

比如:

var math = require('math');

math.add(2,3); // 5

AMD是”Asynchronous Module Definition”,是异步模块化定义。

AMD也采用require()语句加载模块,require有两个参数,是用异步方法加载模块,模块的加载不会影响后面的代码运行,但是只要依赖这个模块的语句都会定义在一个回调函数中,等加载完成后,回调函数才会运行!写法如下:

require([module], callback);(第一个参数[module],是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数

代码:

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

math.add(2, 3);

});

require.js加载的模块是按照AMD的规范写的!

比如:

假如现在有一个math.js文件,它定义了一个math模块。那么,math.js就要像这样写:

// math.js define(function (){

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

};

return { add: add };

});

加载方法如下:

// main.js

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

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

});

模块必须采用特定的define()函数来定义。如果一个模块不依赖其他模块,那么可以直接定义在define()函数之中!

如果这个模块还依赖其他模块,那么define()函数的第一个参数,必须是一个数组,指明该模块的依赖性

例如:

define(['myLib'], function(myLib){

function foo(){ myLib.doSomething();

} return {

foo : foo };

});

posted @ 2015-12-02 22:20  小汤圆。  阅读(159)  评论(0编辑  收藏  举报