我要将单个模块的角度应用程序重构为多个功能模块。
除了更好的代码,我的重点是实现功能模块的延迟加载。
我有一组组件可以组织成两个功能模块,每个功能模块都有自己的路线。
对于一般情况,我确实知道该怎么做。
但是,我有一个更特殊的案例,因为两个功能模块都有一条指向如下的同一XComponent
的路由
{path: /a-module/x, component: XComponent}
{path: /b-module/x, component: XComponent}
问题
在开始重构之前,我想知道以下解决方案是否可行。
AModule
及其路由,并声明其组成部分BModule
及其路由,并声明其组成部分CModule
XComponent
声明并导出CModule
CModule
导入AModule
和BModule
{path: /a-module/x, component: XComponent}
添加到AModule
的路线{path: /b-module/x, component: XComponent}
添加到BModule
的路线AModule
延迟加载loadChildren: 'app/a/a.module#AModule'
BModule
延迟加载loadChildren: 'app/b/b.module#BModule'
谢谢
答案 0 :(得分:0)
好的。 CModule充当模块的角色,大多数开发人员将其称为SharedModule。
AModule和BModule将获得他们自己的CModule副本。
答案 1 :(得分:0)
您可以在两个模块中都使用它们,并且它可能仍在工作,您可以在RouterModule.forRoot()
中添加预加载策略,并且两条路线都将可用。
我确实建议您将此路由拉到另一个功能模块,该功能模块在使用该路由的所有其他模块之前加载。这样,无论是否正常工作都不会有问题。