【问题标题】:angular routes in separate modules pointing to same component指向同一组件的单独模块中的角度路线
【发布时间】:2019-01-14 07:33:08
【问题描述】:

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

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

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

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

但是,我遇到了一个更特殊的情况,因为两个功能模块都会有一条特定的路由指向同一个 XComponent,如下所示

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

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

问题

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    您可以将它们放在两个模块中,它可能仍然有效,您可以将预加载策略添加到您的 RouterModule.forRoot(),这两个路由都将可用。

    我确实建议您将此路由拉到不同的功能模块,该模块在使用此路由的所有其他模块之前加载。这样不管能不能工作都不会有问题。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 嗨,我担心的是使用 CModule 的模块是延迟加载的,所以我想知道如果用户首先访问 AModule 的 rotues ,然后如果 BModule 的路由,应用程序是否会中断。跨度>
      • AModule 甚至不知道 BModule 也使用了 CModule
      猜你喜欢
      • 2019-01-03
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 2018-01-28
      • 2022-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多