`

RequireJS学习资料

 
阅读更多
RequireJS学习资料:
 
组件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时只能加载第一个。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics