angular - Angular 功能、共享和核心模块依赖项
问题描述
我怀疑如何组织 Angular 模块。
Angular 建议 Feature 模块应该导入 Shared 模块(带有可重用的组件)而不是 Core 模块(带有可重用的服务)。从概念上讲,在我看来,Shared 和 Core 模块为 Future 模块提供了可重用的实体,奇怪的是它们应该被区别对待。理解 Future 模块的依赖关系变得更加困难,因为它们都分布在 Future 模块服务和组件中。结果重构可能很困难,因为没有一个地方可以提供高级别的部门概览。
也许我错过了一些东西,还有其他方法可以组织模块吗?您是否遇到过同样的问题,或者从您的角度来看这根本不是问题?
解决方案
基于角度指南
CoreModule 将在 AppModule 中导入,它可用于共享和所有功能模块,这就是为什么他们说避免在功能模块中导入
此外,如果您看到文件夹结构的示例,SharedModule 中有一些服务,这意味着服务不限于 CoreModule。但是一次性类和单例服务将在 CoreModule 中
考虑在核心模块中收集大量的、辅助的、一次性使用的类,以简化功能模块的表观结构。
考虑调用应用程序范围的核心模块 CoreModule。将 CoreModule 导入根 AppModule 可降低其复杂性并强调其作为整个应用程序的协调者的角色。
在核心文件夹中创建一个名为 CoreModule 的功能模块(例如 app/core/core.module.ts 定义了 CoreModule)。
一定要在CoreModule 中放置一个其实例将在整个应用程序中共享的单例服务(例如ExceptionService 和LoggerService)。
导入CoreModule 中资产所需的所有模块(例如CommonModule 和FormsModule)。
避免在 AppModule 之外的任何地方导入 CoreModule。
推荐阅读
- android - 为密度拆分 apk:不支持 Galaxy S8+、Note 8、Galaxy S9+、Note 9
- javascript - AbortError - 使用 WebRTC 进行屏幕共享
- javascript - 无法在 Select 中加载 defaultProptypes - Ant Design
- pandas - 在多个 csv 文件中插入和重命名列并合并为一个 csv
- docker - 编译后的 Thrift bin 文件很大
- typescript - Angular 2 的 Kendo UI:具有多个数据集的 Excel 导出
- node.js - 如何使用 Node.js 在共享主机上运行简单的“Hello World”应用程序?
- java - Liferay 6.2 CE 管理员无法访问停靠栏或控制面板
- powershell - Powershell 日期时间过滤器未使用正确的 ShortDate 模式
- php - Todolist 与 mysql php