Angular 指向同一组件的单独模块中的角度布线

Angular 指向同一组件的单独模块中的角度布线,angular,lazy-loading,angular-routing,angular-module,Angular,Lazy Loading,Angular Routing,Angular Module,我正在将单个模块angular应用程序重构为多个功能模块 除了更好的代码,我的重点是实现功能模块的延迟加载 我有一组组件可以组织成两个功能模块,每个模块都有自己的路径 就一般情况而言,我确实知道如何做到这一点 然而,我有一个更特殊的例子,因为两个功能模块都有一个指向相同XComponent的特定路径,如下所示 {path:/a-module/x,component:XComponent} {path:/b-module/x,component:XComponent} 问题 在开始重构之前,我想知

我正在将单个模块angular应用程序重构为多个功能模块

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

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

就一般情况而言,我确实知道如何做到这一点

然而,我有一个更特殊的例子,因为两个功能模块都有一个指向相同
XComponent
的特定路径,如下所示

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

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

问题

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

  • 定义
    AModule
    及其路由,并声明其组件
  • 定义
    b模块及其路由,并声明其组件
  • 定义
    CModule
  • 声明并从
    CModule
  • 导入
    CModule
    中的
    AModule
    BModule
  • {path:/a-module/x,component:XComponent}
    添加到
    AModule
    的路由中
  • {path:/b-module/x,component:XComponent}
    添加到
    b模块的路由中
  • 延迟加载
    AModule
    loadChildren:'app/a/a.module#AModule'
  • 延迟加载
    b模块
    loadChildren:'app/b/b.module#b模块

  • 谢谢你

    当然可以。CModule扮演一个大多数开发人员称之为SharedModule的模块的角色


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

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


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

    嗨,让我担心的是,使用CModule的模块是延迟加载的,所以我想知道,如果用户先访问AModule的轮换,然后路由BModule,应用程序是否会崩溃。AModule甚至不知道BModule也使用CModule作为共享模块的示例