我刚刚与一家工作学院进行了有关如何组织要素路由配置的讨论。
我们讨论了两种方法。
方法1:单独的路由模块
第一种方法是创建一个单独的feature-a-routing.module.ts
,其中包含所有路由内容并将其导入FeatureAModule
:
// feature-a-routing.module.ts
const routes: Routes = [
{
path: '/',
component: HelloComponent,
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class FeatureARoutingModule {}
// feature-a.module.ts
@NgModule({
declarations: [
HelloComponent,
NeugeschaeftContainerComponent,
ProduktauswahlNeugeschaeftComponent
],
providers: [],
imports: [CommonModule, FeatureARoutingModule]
})
export class FeatureAModule {}
方法2:不变的单独路线
第二种方法是仅在单独的文件中定义routes
常量:
// feature-a-routes.ts
export const featureARoutes: Routes = [
{
path: '/',
component: HelloComponent,
}
];
// feature-a.module.ts
@NgModule({
declarations: [
HelloComponent,
NeugeschaeftContainerComponent,
ProduktauswahlNeugeschaeftComponent
],
providers: [],
imports: [CommonModule, RouterModule.forChild(featureARoutes)]
})
export class FeatureAModule {}
讨论
第一种方法似乎可以更好地分离关注点。这是我唯一看到的区别。 第一种方法还有其他好处,可能涉及测试,优化,甚至有警告吗? 第二种方法的好处是什么?
答案 0 :(得分:0)
除了第一种方法被标记为良好实践之外,因为NgModule是Angular的主要功能之一,在这种情况下选择它根本没有任何好处。它源于惯例。
我更喜欢第二种方法以提高可读性,因为该模块无用(只需导入内容即可将其导出。)