【问题标题】:Using Shared and Core modules besides Feature modules in Angular?在 Angular 中使用除了功能模块之外的共享和核心模块?
【发布时间】:2021-01-24 15:31:01
【问题描述】:

在我的 Angular 应用程序中,我按照this 的方法构建我的架构并将shared.module.ts 文件添加到共享文件夹中。我也在我的应用程序中使用了 lazy-loading,但在这一步我对应该添加到每个模块的导入、声明和导出感到非常困惑。那么,通过查看this 页面上的文件夹结构(我还将shared.module.ts 文件添加到共享文件夹中)并考虑延迟加载,我的模块的导入、声明和导出等应该是什么?我也遵循这种方法,如下所示:

App 模块: 在这个模块中,我们必须导入我们将在整个系统中使用的模块/包。比如:CommonModule、FormsModule、HttpClientModule 等。我们不需要导出这些模块

核心模块: 在这个模块中,我们必须制作将在系统的几乎每个页面中使用的组件。比如:HeaderComponent、FooterCompoennt、AuthGaurds 等。这些组件应该被导出,以便在其他模块中可用。

共享模块: 在这个模块中,我们必须制作服务、组件、管道和指令,它们将在多个组件中使用。如:AlertDialogBox、HTTPService 等。

用户模块(假设功能模块):这是一个特色模块。它将具有特定于用户模块的组件。在这里我们可以导入共享模块,以便我们可以使用 AlertDialogBox 和所有。

另一方面,我认为我应该为每个导航的模块添加一个xxx-routing.module.ts 文件。真的吗?我是否还必须添加共享模块?

【问题讨论】:

  • 您需要为每个模块创建一个索引,您将能够从另一个模块中的另一个模块访问文件。我认为你不需要添加路由,因为我在不同的项目中工作,并且路由模块只声明过一次。
  • 谢谢,但我使用 laz-loading。所以,也许不需要在共享模块中使用路由,但对于其他我需要的。另一方面,我找到了another 示例,但我不明白为什么它使用routing.module.ts 文件。因为在使用延迟加载时,我们只是在功能模块中使用这个文件,而不是根模块。我错了吗?因为您的示例中没有使用它。有什么想法吗?

标签: javascript angular typescript angular-routing angular-module


【解决方案1】:

我会说共享模块和核心模块可能不需要 routing.module.ts。但这一切都取决于您的要求。

这个 github repo 有一个已实现的最佳实践,您可能想看一下以了解它。 https://github.com/DanWahlin/angular-architecture/tree/master/demos/src/app[enter此处链接描述]1

【讨论】:

  • 非常感谢。我认为您给出的示例使用延迟加载,是这样吗?另一方面,我正在研究another 示例,但我不明白为什么它使用routing.module.ts 文件。因为当使用延迟加载时,我们只是在功能模块中使用这个文件,而不是根模块。我错了吗?因为您的示例中没有使用它。有什么想法吗?
猜你喜欢
  • 2017-01-19
  • 2020-05-03
  • 2019-06-17
  • 1970-01-01
  • 2017-08-04
  • 2021-01-10
  • 1970-01-01
  • 1970-01-01
  • 2019-07-15
相关资源
最近更新 更多