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