当前位置: 代码迷 >> JavaScript >> 核心模块是否应该在 Angular2 中导入共享模块
  详细解决方案

核心模块是否应该在 Angular2 中导入共享模块

热度:32   发布时间:2023-06-05 10:15:17.0

遵循关于如何构建 Angular 应用程序的几个建议,我最终得到了这个文件组织:

- app
    - core
        - header
        - sidenav
        core.module.ts
    - shared
        - material
            custom-material.module.ts
        shared.module.ts
    - features
    app.module.ts
  • 我有一个核心模块和一个共享模块
  • 核心模块导出HeaderComponentSidenavComponent等全局组件
  • 共享模块导出一个CustomMaterial子模块(我听说这是做事的方式)
  • CustomMaterial子模块导出我需要的不同材料组件
  • app 模块只导入核心模块(因为共享模块应该只被需要它的元素导入)
  • features/中的模块是延迟加载的

但是现在,我的问题是:我的标题组件需要一些材料组件。

我应该将共享模块导入核心模块还是应用模块? 但这对我来说似乎是一种反模式。

您唯一需要做的就是创建一个 shared.module.ts ,您应该在其中导入您想在任何地方使用的所有材料模块(MatInputModule、MatButtonModule 等)并导出所有这些导入的模块(这使您能够将它们导入另一个模块,调用此共享模块)。

之后要做的小事,就是导入这个包含所有材料模块的共享模块,例如在您的页眉模块和页脚模块中(如果您当然需要 MatInputModule)

希望我已经清楚

祝你今天过得愉快 !

导入所需的模块应该是理想的,除非您没有面临两个或多个模块之间的递归导入冲突。