Angular:FeatureModule导入路由模块而非反向的原因及方案对比
Angular模块拆分方案疑问
第一种方案
这是Angular默认采用的模块声明方式:
Feature1Module
@NgModule({ imports: [CommonModule, Feature1RoutingModule], declarations: [Feature1Component], exports: [Feature1Component], }) export class Feature1Module {}
Feature1RoutingModule
@NgModule({ imports: [RouterModule.forChild([ { path: 'create1', component: Feature1Component } ])], exports: [RouterModule] }) export class Feature1RoutingModule {}
我的顾虑是:如果要复用Feature1Component,必须导入Feature1Module,但这样会同时引入路由配置,导致其他地方导入该模块时,'create1'路径会被启用。
请问这种拆分Feature1RoutingModule与Feature1Module的方式有何价值?
第二种方案
我更倾向于采用反向导入的方式:
Feature1Module
@NgModule({ imports: [CommonModule], declarations: [Feature1Component], exports: [Feature1Component], }) export class Feature1Module {}
Feature1RoutingModule
@NgModule({ imports: [ Feature1Module, RouterModule.forChild([ { path: 'create1', component: Feature1Component } ])], exports: [RouterModule] }) export class Feature1RoutingModule {}
是否存在必须使用第一种方案而非第二种的理由?
内容的提问来源于stack exchange,提问作者roll
相关产品推荐
相关产品推荐

