Flu*_*hBG 9 architecture module angular
我读过很多关于这个主题的文章,但在处理这个问题上仍然遇到困难。无论如何,如果它是重复的,抱歉!
基本上,我正在从头开始构建一个 Angular 应用程序,并且我想按照最佳约定来组织我的代码。我有一个核心模块,当前包括通用数据访问单例服务和使用它的身份验证服务。我无法掌握的是,我什么时候应该创建一个功能模块,以及该功能何时属于核心模块。
核心模块树:
例如,Auth 听起来像应用程序核心,但在我的例子中,它还包括一些声明(组件等),并且可能需要从共享模块导入一些 UI 原子/分子。它是否应该有一个直接导入到根模块中的功能模块?我应该让核心模块导出 auth 模块的声明吗?或者我应该分离身份验证(核心模块)的提供者并创建另一个身份验证功能模块(用于声明)?
布局模块、模态模块等也是如此。
谢谢!
Job*_*med 23
对于小型应用程序,您无需考虑这一点。但如果应用程序足够大,您可以模块化您的应用程序。
对于具有大量路由的大型应用程序,您可以考虑延迟加载。延迟加载将有助于保持初始包大小更小,这意味着当应用程序加载时,首先只会加载核心模块。它将减少应用程序的初始加载时间。
核心模块
您可以将以下项目放入核心模块中(如果您认为合适,也可以放置其他项目)。
为了防止其他功能模块重新导入核心模块,可以在 CoreModule 中添加以下构造函数:
constructor(@Optional() @SkipSelf() parentModule: CoreModule) {
if (parentModule) {
throw new Error(
'CoreModule is already loaded. Import it in the AppModule only.');
}
}
Run Code Online (Sandbox Code Playgroud)
共享模块
功能模块
声明仅在该模块中使用的模型、组件、服务和其他项目。
并且对于每个功能模块,您还可以创建一个路由模块。
归档时间: |
|
查看次数: |
7835 次 |
最近记录: |