【发布时间】:2018-03-08 04:07:21
【问题描述】:
我们有一个中型 Angular 4 应用程序(+-150 个组件)。
其中许多组件需要注入服务类并需要在应用程序中声明其他组件。
我们一直在尝试并发现对开发人员更友好的一种方法是为每个组件创建一个模块。模块导入子组件模块并提供(或导入)组件所需的所有服务。它还导出组件本身,以便其他组件可以通过模块引用它。
它使组件的组合变得轻而易举,并且组件的测试夹具的设置非常简单(这是以前重复依赖项和子组件树依赖项的地方)。
这种方法似乎与基于组件的架构相匹配,并允许围绕组件依赖项进行某种形式的封装。
感觉好得令人难以置信;)
我的问题是,拥有这么多模块对性能(或其他)有何影响?
【问题讨论】:
-
感谢您的意见。这种方法大大缩短了我们的测试运行时间。从 700 次测试的 2 分钟 30 秒到 5 秒。开发人员开销要少得多;-) 嗯...不知道为什么我的问题被否决了。也许这表明其他人认为这是一个坏主意。
-
我实际上认为这是这样做的方法,一个模块包括父组件和子组件,记住当 Angular 是 beta 版时,我们不能这样做......我们有一个用于大型应用程序的模块,那是友好的反面,不是马克所说的
-
如果你正在开发一个库,每个组件都有一个模块通常是要走的路。例如,检查 ng-bootstrap。如果您正在开发应用程序,最好按功能对组件进行分组。 不知道为什么我的问题被否决了。 - 不要注意,这是 SO 的病
-
@Bob,您库的使用者可能会选择仅使用您库中的一个组件,因此导入该组件模块而不是具有多个组件的整个 lib 模块会很方便。跨度>
-
@MarkWhitfeld,是的,它们都被编译和合并了。您可以watch my talk at ngconf 或阅读模块上的my article。如果有问题,请提出问题:)
标签: angular