从 RC4 到发布的 App 重构(Component 和 NgModule)

App refactoring from RC4 to release (Component and NgModule)

关于与@Component 和@NgModule 相关的更改的问题。

总而言之,如果我错了请纠正我,重点是 Component 的指令现在是 NgModule 的声明。

好的我明白了,做模块。但是我不确定如何重构我的应用程序..

应用最初是这样的:

具体我想我有两个选择:

第一个是添加大量行只是为了声明大多数时候带有组件的模块,这似乎是错误的。 第二种情况似乎设计不好,所有部门都在同一个地方..

关于我应该做什么的任何建议?我不确定模块的愿景是否适合我的应用程序..

您不必为每个组件创建一个 NgModule。 为什么不为每个功能区域创建一个 NgModule? 也许每个子功能区域?

而你只需要将这些一级功能区NgModule导入到你的AppModule中即可。

并且不要介意那些 NgModule 中的所有组件。

这就是 NgModule 的重点。在您的 AppModule 中,您不想处理所有子组件和子-子-子-子-子...-子-组件..: )

angular2 文档推荐 feature modules。来自网站:

A feature module delivers a cohesive set of functionality focused on an application business domain, a user workflow, a facility (forms, http, routing), or a collection of related utilities.

将这个想法应用到您的应用程序中,我会将相关的 'technical UI components' 和 'functional areas' 放在一起,而不是将它们分开。然后,您将根据他们的意图而不是他们的技术构成创建多个模块。您仍然需要一个根模块来导入功能模块。

单独模块的目标是让某些东西可以按原样取出并直接插入另一个应用程序。

示例布局:

- app.module.ts
- app.component.ts
- feature1/
--- feature1.module.ts
--- feature1.component.ts
--- feature1.service.ts
- feature2/
--- feature2.module.ts
--- feature2.directive.ts
--- feature2.component.ts
--- feature2-subcomp/
------ feature2-subcomp.component.ts
------ feature2-subcomp.component.html

当然每个功能模块可以有多少个components/services/directives就可以满足每个功能区的要求