requireJS是什么?架构
既然AMD是一种模块化的规范,那么requireJS是什么呢,经过我这几天的学习,我学到的requireJS就是一个采用了AMD规范的模块加载器,它能够根据不一样页面对不一样模块的需求,按照你的设置依次加载并执行全部的 JavaScript 文件。框架
为何要使用requireJS?异步
以前学习了模块化,以及正常编写javascript会遇到的一些问题:单文件变量命名冲突问题(全局污染)、前端多人协做问题、文件依赖问题(循环依赖)、按需加载等等,而使用requireJS这样一个模块加载器,这些问题均可以迎刃而解了。模块化
能够看出,咱们使用 Require JS 主要有两个目的:一、解耦代码,方便代码重用和管理;二、加速页面加载,内置优化引擎(需服务器支持),自动异步加载依赖项,将全部须要加载的文件自动合并为一个文件,减小 HTTP 请求。学习
requireJS如何去定义一个模块?优化
当咱们根据模块化的基础概念设计模块时,那么requireJS是如何把咱们的设想变为实际的模块的呢?关键字:define。
define( [module-name?], [array-of-dependencies?], [module-factory-or-object] );
requireJS如何去使用一个模块?
当咱们定义了一个模块后如何去使用呢?关键字:require。
require( [array-of-module], [callback-or-object] );
备注:另外requireJS还支持许多使用方式,例如直接引用JS文件、引用非AMD规范文件等等,详情见官网。
requireJS如何去配置模块?
require.config( [object] );
object:配置的模块对象,属性包含baseUrl(根路径)、paths(配置加载模块路径,格式{ "file": "path+filename" })、shim、waitSeconds等等。
还能够将配置写在自定义JS文件中,只需在引用requireJS文件的script标记中添加属性data-main便可,例如:
<script data-main="main" src="require.js"></script>
main.js文件内容:
require.config({ baseUrl: "", paths : { }, shim: { } });
若是主页中有入口的require,那么建议放到main.js文件中。
是否是对requireJS有一个认识了呢,^_^