最近项目做得七七八八,欠缺功能也在等待后台的API,上班实在是有点无聊,所有决定写写blog,一方面是对之前两个项目的总结,另一方面当然是为了提升自己的专业知识及技能。好啦!进入正题,近两个项目都是利用angularjs+requirejs+async-loader-master实现了项目的模块化及按需加载功能,所以,决定整理一下requirejs的学习笔记。
为什么使用requirejs:
- 实现JavaScript文件的异步加载,避免网页失去响应,防止js文件加载阻塞页面渲染。
- 管理模块之间的依赖性,便于代码的编写和维护。
如何使用requirejs:
1.下载文件地址: 点击打开链接
2.引入文件:<script src="js/require.js" data-main = "config"></script>
注意:
- data-main:告诉你加载完成requirejs文件之后,马上去载入config文件即入口文件。
- requirejs默认假定所有的依赖资源都是js文件,因此config.js文件无需加上“.js”后缀。
3.requirejs主要的三个API:
- config--用于配置requirejs
- require--用于读取依赖模块
- define--用户创建模块
4.baseUrl详解
了解这三个主要的api之前,我们首先要先了解一个基础的概念:baseUrl。简单的说, baseUrl 指定了一个目录,然后requirejs基于这个目录来寻找依赖的模块。
举个例子,在index.html里加载requirejs,那么,requirejs加载完成后,它会做两件事件:
- 加载js/config文件
- 将baseUrl设置为data-main指定的文件所在的路径,这里是 js/
<script src="js/require.js" data-main = "js/config"></script>
那么,下面的依赖的lib模块的实际路径为:js/lib.js
require(['lib'], function(Lib){ // do something});
除了在data-main指定baseUrl路径之外,你还可以在config中声明baseUrl:
requirejs.config({
baseUrl: 'js'
});
require(['lib'], function(Lib){
// do something
});
注意:如果你没有在data-main中指定baseUrl,也没有在config中声明baseUrl,那么,它默认的路径为加载requirejs文件所在的路径。
三个主要函数下篇一一详细说明。