我有一个包含多个功能模块的 Angular 项目,但我不确定构建共享模块的最佳实践是什么。
- 是否最好在每个功能模块中导入一个大型
SharedModule
,即使它包含仅在少数情况下使用的组件、管道、指令等但不是所有功能模块? - 还是将它们拆分成更小的模块(逻辑单元),然后将它们一个接一个地导入到仅在需要的地方使用功能模块?
我认为 (1) 听起来更容易编写,但我有点担心将部分未使用的代码导入每个功能模块可能会减慢我的应用程序并使延迟加载变得毫无意义。 如果有人能阐明这两种策略的优缺点,那将是非常受欢迎的。谢谢!
最佳答案
当然,这取决于您的应用需求。我会根据您的其他模块需求亲自创建几个共享模块。
想象一下下面的例子:
- 我有 2 个功能模块需要特定的自定义表格。
- 我有 3 个使用 flex-layout 的功能模块,而使用自定义表格的 2 个功能模块中只有一个使用 flex-layout。
这是一个典型的示例,您将拥有一个导入和导出所有内容的大型共享模块,但在这种情况下,3 个功能模块将在不使用表类时导入它们。
在这种情况下,我发现将共享模块分成几个符合我需要的模块很有用。 通常,这意味着我将创建 StyleSharedModule、TableSharedModule 等...
无论如何,大小并不是一个重要的因素。你可以有一个非常轻的共享模块和很多子模块,你也可以有一个非常重的共享模块,它只导入一些东西(但是大东西)。
对我来说,逻辑需求是让你创建不同共享模块的重要因素,而不是大小。
关于angular - Angular 中共享模块的理想大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48149860/