我正在阅读一篇关于Angular模块加载的写得非常好的文章 - https://medium.com/@cyrilletuzi/understanding-angular-modules-ngmodule-and-their-scopes-81e4ed6f7407
由于功能模块“ NgModule 的提供者实际上是全局(并且热切地)注入的,因此本文讨论了 RouterModule 等模块中使用的”forRoot“模式。
我遇到了 ReactiveFormsModule - https://angular.io/api/forms/ReactiveFormsModule - 它有 FormBuilder 提供程序,但它似乎没有使用forRoot模式。这是不是意味着每个使用ReactiveFormsModule的功能模块都会重新创建 FormBuilder 提供程序?我错过了什么吗?
答案 0 :(得分:2)
forRoot
仅与延迟加载的模块相关。对于急切加载的模块,提供程序无论如何都在应用程序根范围中注册。
如果您在延迟加载的模块中导入了ReactiveFormsModule
,那么将为每个延迟加载的模块创建一个FormBuilder
实例。
它并不重要,因为FormBuilder
没有状态。
因此,不是单身人士对于FormBuilder
的工作方式没有任何影响,并且因为它没有状态,所以它在记忆方面也没有区别。