AngularJS' 依赖注入和 RequireJS 本质上是一样的吗?

Are AngularJS' dependency injection and RequireJS essentially the same?

我不久前开始使用 AngularJS 并且正在练习保持 Controller 纤薄。我对 AngularJS' 依赖注入的理解是它使外部 JS 代码在控制器中可用。

我也是 RequireJS 的新手,因为我想减少加载时间。我读了一些书,但仍然感到困惑。我的印象是 AngularJS' 依赖注入与 RequireJS 的工作方式类似——在我需要时动态加载函数。

我是在正确的轨道上还是完全错了?

不,它们完全不同。 Angular DI involves components。 Angular 组件的示例是工厂、指令和过滤器。 Angular 提供了几种将组件注入其他东西的方法,但并不关心如何加载这些组件或将它们存储在何处。它们可以全部存储在单个 .js 文件中、多个文件中或内嵌在 HTML 文档中。一般假设每个组件都在页面加载时加载,但事实可能并非如此。

RequireJS is a file and module loader。每个单独的模块都在它自己的文件中。 RequireJS 使用 ajax 方法按需加载模块。

其中Angular更关注DI图片的IOC部分,RequireJS更关注文件加载、数据传输和内存保存部分。

使用 RequireJS 来增强 Angular 的 DI 功能是可能的,而且很常见,但除非它是具有数百个脚本文件的大型应用程序,否则通常没有必要。