从 RC4 到发布的 App 重构(Component 和 NgModule)
App refactoring from RC4 to release (Component and NgModule)
关于与@Component 和@NgModule 相关的更改的问题。
总而言之,如果我错了请纠正我,重点是 Component 的指令现在是 NgModule 的声明。
好的我明白了,做模块。但是我不确定如何重构我的应用程序..
应用最初是这样的:
- 主要app.ts(带有 AppComponent)
- 功能区1
- 子功能区11
- 列表视图(组件)
- 详细视图(组件)
- 子功能区12
- 列表视图(组件)
- 详细视图(组件)
- ...大约4个区域,每个区域有3个子区域
- 技术组件目录
- Technical/UI组件1(组件)
- Technical/UI组件2(组件)
- ...大约 6
具体我想我有两个选择:
- 为我的每个组件(list/detail 视图)创建一个 NgModule,技术组件除外。
- 或者创建一个声明所有依赖项的主 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就可以满足每个功能区的要求
关于与@Component 和@NgModule 相关的更改的问题。
总而言之,如果我错了请纠正我,重点是 Component 的指令现在是 NgModule 的声明。
好的我明白了,做模块。但是我不确定如何重构我的应用程序..
应用最初是这样的:
- 主要app.ts(带有 AppComponent)
- 功能区1
- 子功能区11
- 列表视图(组件)
- 详细视图(组件)
- 子功能区12
- 列表视图(组件)
- 详细视图(组件)
- 子功能区11
- ...大约4个区域,每个区域有3个子区域
- 技术组件目录
- Technical/UI组件1(组件)
- Technical/UI组件2(组件)
- ...大约 6
具体我想我有两个选择:
- 为我的每个组件(list/detail 视图)创建一个 NgModule,技术组件除外。
- 或者创建一个声明所有依赖项的主 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就可以满足每个功能区的要求