angular 有类似下面这样通过构造函数进行的依赖注入
import { HeroService } from './hero.service';
export class HeroListComponent {
heroes: Hero[];
constructor(heroService: HeroService) {
this.heroes = heroService.getHeroes();
}
}
和在vue或者react中通过import直接导入模块有什么区别?
依赖注入强调可以外部中获得它的依赖,import不也是从外部获得依赖吗?看不出
angular中所强调的的依赖注入相比vue或者react到底有什么优势?
依赖注入也是一种模式,主要用于解耦,除此之外也很容易实现组件替换,但缺点是写出来的程序不好懂,因为基本上是使用接口在搭业务框架,然后逐个实现接口来完成业务逻辑实现。
所以学习 DI 的关键在于要了解接口化设计,各种 DI 框架所做的事情无非也就是为接口绑定实现,然后按接口定义自动组装各类实现而已。
另外
import
是静态导入,相应的还有import()
动态导入,ES 中动态导入的标准快定板了,TypeScript 中已经实现。不过他们都跟依赖注入没有直接关系。建议你多看看 DI 方面的资料,对这个概念熟悉一些了再来研究怎么用。