requireJS是什么?
既然AMD是一种模块化的规范,那么requireJS是什么呢,通过我这几天的学习,我学到的requireJS就是一个采用了AMD规范的模块加载器,它可以根据不同页面对不同模块的需求,按照你的设置依次加载并执行所有的 JavaScript 文件。
为什么要使用requireJS?
之前学习了模块化,以及正常编写javascript会遇到的一些问题:单文件变量命名冲突问题(全局污染)、前端多人协作问题、文件依赖问题(循环依赖)、按需加载等等,而使用requireJS这样一个模块加载器,这些问题都可以迎刃而解了。
可以看出,我们使用 Require JS 主要有两个目的:1、解耦代码,方便代码重用和管理;2、加速页面加载,内置优化引擎(需服务器支持),自动异步加载依赖项,将所有需要加载的文件自动合并为一个文件,减少 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有一个认识了呢,^_^