RequireJS学习资料:
http://www.runoob.com/w3cnote/requirejs-tutorial-1.html
http://www.runoob.com/w3cnote/requirejs-tutorial-2.html
http://www.tuicool.com/articles/jam2Anv
http://www.runoob.com/w3cnote/requirejs-tutorial-2.html
http://www.tuicool.com/articles/jam2Anv
组件ID是组件的唯一标识符,在和组件ID一对一的脚本文件(一个脚本文件中只有一个define)中这个ID可以没有,而且最好没有。这是因为组件加载器在请求组件的时候是必须给一个组件ID的,而且需要配置组件ID对应的脚本文件路径。加载器根据文件路径就能找到对应的组件脚本文件。所以,加载器可以直接用请求时使用的ID作为这个组件的ID。这样的好处是组件转移到其它项目的时候不需要怕ID冲突而需要修改组件ID,所以,使用define方法定义组件的时候,最好不要设置组件ID。
根据AMD规范,一个文件中定义多个组件也是可以的,但这就必须给每个define分配一个组件ID。
经过测试,当一个js文件中出现多个define订模块时,最好给每个define分配一个ID,
1.js文件中所有define都分配ID,在require时引入即可。
2.如果其中有一个不分配ID,那么在require时,必须先引入该js的文件名称。
如下app.js:
define("app2", [], function() { return { hello2: function() { alert("hello, app2~"); } } }); define([], function() { return { hello: function() { alert("hello, app~"); } } });main.js
require.config({ baseUrl: 'scripts', paths: { app: 'app', app2: 'app' } }); require(['app', 'app2'], function(app, app2) { app.hello(); app2.hello2(); });以上可以正常运行,当变更为 require(['app2', 'app'], function(app2, app) { ... } 时,就无法正常工作
一个js文件中只能有一个无主模块,当同时require一个js中的多个define时,无主引用需要为数组第一个;
一个js文件中出现多个无主模块,require时只能加载第一个。