关于Angular2-Practices,建议将多个其他模块上使用的声明放入共享模块中。 此外,强烈建议不要在此类共享模块上设置任何提供程序。 相反,如果共享模块与声明一起提供服务,则应添加一个名为forRoot的静态方法,该方法返回一个ModuleWithProviders-Object,并且仅由app-Module调用。 我看到了这背后的原因:由于每个延迟加载的模块都有自己的Dependency Injector,因此每个下载的模块都会检查其提供者并在惰性模块而不是应用程序范围的服务上使用。 我在这里看不到的内容:
由于Angular2-Logic仅扫描模块已知的声明,因此comon意义将告诉我们制作更小,更紧凑的共享模块。然而,由于几乎每个模块都有服务,因此必须由应用程序模块和每个消费者加载,因此必须进行某种权衡。
答案 0 :(得分:1)
模块非常轻巧。延迟加载模块中的forRoot()
只会急切地注册提供者,模块的其余部分仍然是懒惰的。
forRoot()
中建议CoreModule
的原因。