RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤。可以用它来加速、优化代码,但其主要目的还是为了代码的模块化。
RequireJS以一个相对于baseUrl的地址来加载所有的代码。页面顶层<script>标签含有一个特殊的属性data-main,require.js使用它来启动脚本加载过程,而baseUrl一般设置到与该属性相一致的目录。
步骤一:
1、先在需要模块化的文件中引入require.js文件。
注意:
(1)路径问题(此处的路径是相对路径),demo为我省略的路径(视情况来写)。
(2)要将要模块化的文件中的js代码删除掉。(视情况进行删除,一般引入的js文件,自己实现功能的js代码)
2、在script标签中还需要需要设置data-main属性,该值是一个js文件的路径。
data-main属性的作用:可以设置该模块的入口文件(声明不同的模块,实现业务代码)
注:下面标签中的入口文件名称为comments.js
<script src="demo/require/require.js" data-main="demo/js/comments.js"></script>
步骤二:
在入口文件中,实现模块的声明以及功能的代码。
(1)配置模块
require.config({
paths:{ //path作用是声明每个模块的名称和每个模块对应的路径
‘模块名称’:‘模块路径’, //此处注意路径不带后缀名,绝对路径
‘模块名称’:‘模块路径’,
‘模块名称’:‘模块路径’,
....
},
shim:{ //shim的作用是声明模块与模块之间的依赖关系
‘模块名称’:{deps : 依赖的模块名称 },
‘模块名称’:{deps : 依赖的模块名称 },
‘模块名称’:{deps : 依赖的模块名称 },
....
}
})
(2)引入模块:
注意:模块数组中每个模块的名字是从paths声明的时候那里直接得到的。参数名称是自己定义的。要与模块名相对应
require(
['模块名1','模块名2','模块名3',...],
function(参数1,参数2,参数3,.....){
//具体功能逻辑的代码写这里...
}
);
(3)调试相关的代码即可完成模块化js文件