本文以初学身份对比RequireJS和jQuery来讲明前者的优势,若使用其它库,能够“眼动”将jQuery替换为你所用的js库;数组
“模块化”,实现某一功能的方法独立化,使其能够复用;这一高大上的名词,按个人理解,和jQurey插件的功能同样;那为何须要学习RequireJS呢?模块化
jQuery,是将jQuery定义为全局变量,在脚本的任何地方都能调用jQuery中的方法;函数
对比于jQuery,RequireJS的优势就是,能够将各依赖关系(依赖关系---js库,指你须要引用这个库才能作其余功能)声明,并将各个依赖关系做为函数参数处理,便可以把jQuery等js库的做用域定义为局部(函数内部);学习
RequireJS是为实现模块化存在的,其核心功能有两个:定义模块define()和调用模块require();ui
定义模块define(),建一个功能库:插件
//推荐一个模块为一个单独的js文件;
无依赖关系的模块:code
define({ name1:'value1', name2:'value2' })
无依赖关系,但须要处理一些初始化任务:作用域
define(function(){ })
有依赖关系的模块:回调函数
define('module name',[],function(){ //第一个参数为模块名称,可选项--不建议命名; //[]表示依赖关系的数组列表; //function(){}回调函数,当指定模块都加载成功后被调用; //加载的模块以参数形式传入该函数中,从而在回调函数内部就能够使用这么模块; //参数和模块的数量和次序要一一对应; //或者经过arguments[]来调用依赖; // //require()加载这个模块以前会先加载依赖关系; //模块应该返回一个本模块/函数 return { // 属性名:值, // 方法名:function(){} //模块名默认为脚本文件名; //} })
调用模块require():io
require([],function(){ //[]表示依赖关系的数组列表; //function(){}回调函数,当指定模块都加载成功后被调用; //加载的模块以参数形式传入该函数中,从而在回调函数内部就能够使用这个模块的属性或方法; //参数和模块的数量和次序要一一对应; //或者经过arguments[]来调用依赖; })