我刚进入一家使用 AngularJS (1.x) 堆栈的公司。
来自 es6(babel)+webpack+redux+react 背景,我想知道当我可以简单地导入/导出文件时使用 AngularJS 依赖注入(inject)有什么好处。
坦率地说,导入/导出为我提供了要查找的文件位置,但 AngularJS 依赖项注入(inject)似乎并没有考虑到这一点。
(此外,angularJS 服务、工厂等似乎可以替换为 ES6 类、导出/导入等)
使用 AngularJS 依赖项注入(inject)和特定于 angularjs 的依赖项(例如 $http 等)而不是转向替代方案是否有任何明显的好处? (比如jquery的ajax等)
谢谢你:)
模块加载和依赖注入(inject)是两种不同的思想。
模块加载就是定位你的源代码。 DI 是关于自动将您的对象连接在一起。
Angular 允许您指定一个提供程序,使您能够在注入(inject)之前配置您的代码。我建议您查看此链接。
https://docs.angularjs.org/guide/providers
angular 的 DI 框架的另一个值(value)是使编写测试变得更容易,因为您可以轻松替换您的服务。
至于远离 Angular 特定服务,我建议不要这样做,因为这些服务未挂接到您的范围,因此您可能必须在任何地方调用 $scope.apply()。
总而言之,您可能会争辩说 DI 在 Javascript 等语言中的用处不大,因为它不是类驱动的,例如 Java 和 C#。