我用角4创建了一个应用程序,我用角CLI设置了角应用程序。有人能检查一下这个并提出一些改进建议吗?
以下是我使用的文件夹结构:

在AppModule中,我有以下代码:
import { NgModule, CUSTOM_ELEMENTS_SCHEMA, Injector, APP_INITIALIZER } from '@angular/core';
import { HttpModule } from '@angular/http';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
import { AppRoutingModule } from './app.routing';
import { SharedModule } from './shared/shared.module';
import { AuthenticationService, DashboardService, NotificationService, AlertService, KnowledgeBaseService, AssetService } from './shared/services/index';
import { AuthGuard } from './shared/guards/auth.guard';
import { AppComponent } from './app.component';
import { LoginComponent } from './login/login.component';
import { MainComponent } from './main/main.component';
import { AppPreBootstrap } from '../AppPreBootstrap';
export function appInitializerFactory(injector: Injector) {
return () => {
return new Promise<boolean>((resolve, reject) => {
resolve(AppPreBootstrap.getApplicationConfig());
});
}
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
HttpModule,
FormsModule,
ReactiveFormsModule,
NgBootstrapFormValidationModule.forRoot(),
SharedModule,
RouterModule,
AppRoutingModule
],
providers: [
AuthenticationService,
DashboardService,
NotificationService,
AlertService,
KnowledgeBaseService,
AssetService,
AuthGuard,
{
provide: APP_INITIALIZER,
useFactory: appInitializerFactory,
deps: [Injector],
multi: true
}
],
bootstrap: [AppComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class AppModule { }发布于 2017-12-05 14:39:51
我只会做几个美化的改变。我讨厌巨大的app.modules,所以我喜欢把所有的核心导入到core.module中,然后导入到app.module中,就像描述的这里一样。
在“核心功能模块”下
我现在知道最近的角cli生成了什么,但我喜欢预先考虑我的应用程序将包括哪些模块。如果将有许多组件,并且您可以轻松地将其中一些组件分组,请考虑创建更多的模块(延迟加载)。
此外,请考虑将所有构造(数据报警器、时间选择器、警报)组件放在何处并导出它们。在上面的链接上阅读更多关于共享模块的信息,您已经有了一个很好的设置。但是共享模块不应该包含在app.module中,只应该包含在功能模块中(如果您决定这样做的话)
发布于 2018-11-13 23:01:53
正如注释所建议的,通过提供的示例,这里没有太多的代码审查。如果您正在寻找改进未来开发的方法,请尝试给它一个read 角型导轨。风格指南有很多的Do's和Don‘’s,它们容易阅读,有助于您更好地组织您的应用程序。
指南中一些有趣的要点是
当您希望保持应用程序模块尽可能干净时,核心模块和共享模块是有用的--我使用它加载任何“全局提供程序”(不过,对于角度为6/7的应用程序模块,这可能会因为ProvidedIn在注射型上的选项而改变。
功能模块是随着时间的推移,你只能在项目中获得价值的东西。当事情开始发展的时候,你会注意到你可能需要交叉分享你的应用程序的特性/部分。将事物分解到他们自己的模块中可以实现以下几点:
最后,我将注意到,使用角CLI可以帮助完成许多在其中创建特性模块和组件的任务。它为你做了许多有益的小事情,帮助你加速发展。
希望这能帮助你获得一些棱角分明的核心技能,并养成一些良好的干净的代码习惯。
https://codereview.stackexchange.com/questions/176160
复制相似问题