1

我们过去必须providers在模块定义的数组中包含 Angular 服务。随着 Angular 的进步,我们现在主要使用装饰器providedIn中的属性。@InjectableAngular 编译器为我们做了很多很棒的事情,比如摇树,所以我们只需创建服务,使用providedIn就可以了。

我很好奇为什么不能对组件做同样的事情。目前,组件需要添加到declarations模块定义中的数组中。最新的 Angular 能够在没有entryComponents(动态创建 ng 工厂)的情况下创建动态组件,所以它不应该能够为服务做同样类型的事情providedIn吗?这意味着不必将组件放入declarations数组中,它会做与服务相同的事情吗?

4

1 回答 1

0

我认为应该知道应该在哪里使用哪个组件。如果 all 都在 root 中定义,则延迟加载将起作用。另一个问题可能是具有相同选择器的多个指令/组件。因此,编译器将不得不猜测去哪里。

于 2020-08-03T18:46:30.577 回答