应该在每个特性模块中导入像HttpClientModule这样的通用模块,还是应该只在AppModule中导入一次?
我在想,如果HttpClientModule将被导入到每个特性模块中,如果AppComponent导入多个这些特性模块,它会被加载多次吗?如果HttpClientModule只会在AppModule中导入,是不是就像功能模块列表的可重用性丢失了-因为它需要导入HttpClientModule才能独立?
功能模块:
@NgModule({
declarations: [AComponent],
imports: [
CommonModule,
FormsModule,
HttpClientModule
],
exports: [
AComponent
]...
应用程序模块:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
HttpClientModule,
FeatureModule
]...
创建共享模块,并将HttpClientModule等公共模块放入其中然后在每个特性模块中导入共享模块
你应该使用一个Angular服务,将provideIn设置为'root'。然后将该服务注入到应该使用它的每个组件中。这样,代码只会被导入到你的bundle中一次。