在Angular 9中,使用Ivy编译器,不再需要使用entryComponents
数组来告诉编译器哪些组件是动态加载的。Ivy编译器会自动检测和处理动态加载的组件。
在之前的版本中,我们可能会在NgModule的entryComponents
数组中声明动态加载的组件。例如:
@NgModule({
declarations: [
AppComponent,
DynamicComponent
],
entryComponents: [
DynamicComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
在Angular 9中,我们可以直接将DynamicComponent
声明在declarations
数组中,而无需再使用entryComponents
数组。例如:
@NgModule({
declarations: [
AppComponent,
DynamicComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这样,Ivy编译器会自动检测DynamicComponent
是一个动态加载的组件,并进行相应的处理。
需要注意的是,Ivy编译器在编译时会自动分析模板,并根据需要自动包含所需的组件。因此,如果在模板中动态加载了组件,Ivy编译器会自动将这些组件添加到编译过程中,无需手动声明。
希望对你有所帮助!