指向相同组件的单独模块中的角形路线

时间:2018-08-07 09:04:38

标签: angular lazy-loading angular-routing angular-module

我要将单个模块的角度应用程序重构为多个功能模块。

除了更好的代码,我的重点是实现功能模块的延迟加载。

我有一组组件可以组织成两个功能模块,每个功能模块都有自己的路线。

对于一般情况,我确实知道该怎么做。

但是,我有一个更特殊的案例,因为两个功能模块都有一条指向如下的同一XComponent的路由

{path: /a-module/x, component: XComponent}

{path: /b-module/x, component: XComponent}

问题

在开始重构之前,我想知道以下解决方案是否可行。

  1. 定义AModule及其路由,并声明其组成部分
  2. 定义BModule及其路由,并声明其组成部分
  3. 定义CModule
  4. XComponent声明并导出CModule
  5. CModule导入AModuleBModule
  6. {path: /a-module/x, component: XComponent}添加到AModule的路线
  7. {path: /b-module/x, component: XComponent}添加到BModule的路线
  8. AModule延迟加载loadChildren: 'app/a/a.module#AModule'
  9. BModule延迟加载loadChildren: 'app/b/b.module#BModule'

谢谢

2 个答案:

答案 0 :(得分:0)

好的。 CModule充当模块的角色,大多数开发人员将其称为SharedModule。

AModule和BModule将获得他们自己的CModule副本。

答案 1 :(得分:0)

您可以在两个模块中都使用它们,并且它可能仍在工作,您可以在RouterModule.forRoot()中添加预加载策略,并且两条路线都将可用。

我确实建议您将此路由拉到另一个功能模块,该功能模块在使用该路由的所有其他模块之前加载。这样,无论是否正常工作都不会有问题。