angular injector.get和在构造函数中注入有什么区别?

新手上路,请多包涵

const router = this.injector.get(Router)和constructor(private router: Router)有什么区别吗?

阅读 2.5k
1 个回答

是有区别的。

使用构造函数注入的时候明确的声明了那些服务是需要注入的,这样通过依赖检查可以直接查找该组建所需的依赖项。

使用Injector注入是为了解决一些动态注入的需求,此时Angular不知道你想要具体注入哪些依赖项,所以其实是注入了所有服务的DI容器(注意不是所有服务),

首选应该考虑使用构造函数注入,当有动态注入需求的时候再考虑使用Injector

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏