首页 > 解决方案 > Angular 功能、共享和核心模块依赖项

问题描述

我怀疑如何组织 Angular 模块。

Angular 建议 Feature 模块应该导入 Shared 模块(带有可重用的组件)而不是 Core 模块(带有可重用的服务)。从概念上讲,在我看来,Shared 和 Core 模块为 Future 模块提供了可重用的实体,奇怪的是它们应该被区别对待。理解 Future 模块的依赖关系变得更加困难,因为它们都分布在 Future 模块服务和组件中。结果重构可能很困难,因为没有一个地方可以提供高级别的部门概览。

也许我错过了一些东西,还有其他方法可以组织模块吗?您是否遇到过同样的问题,或者从您的角度来看这根本不是问题?

标签: angular

解决方案


基于角度指南

CoreModule 将在 AppModule 中导入,它可用于共享和所有功能模块,这就是为什么他们说避免在功能模块中导入

此外,如果您看到文件夹结构的示例,SharedModule 中有一些服务,这意味着服务不限于 CoreModule。但是一次性类和单例服务将在 CoreModule 中

考虑在核心模块中收集大量的、辅助的、一次性使用的类,以简化功能模块的表观结构。

考虑调用应用程序范围的核心模块 CoreModule。将 CoreModule 导入根 AppModule 可降低其复杂性并强调其作为整个应用程序的协调者的角色。

核心文件夹中创建一个名为 CoreModule 的功能模块(例如 app/core/core.module.ts 定义了 CoreModule)。

一定要在CoreModule 中放置一个其实例将在整个应用程序中共享的单例服务(例如ExceptionService 和LoggerService)。

导入CoreModule 中资产所需的所有模块(例如CommonModule 和FormsModule)

避免在 AppModule 之外的任何地方导入 CoreModule。


推荐阅读