当我读到有关ngrx的文章时,我看到了包括商店的不同方式:
我看到的一种方法是将其包含在导入中:
@NgModule({
imports: [
... omitted
StoreModule.provideStore(AppReducer),
],
declarations: [
AppComponent
],
bootstrap: [AppComponent]
})
export class AppModule {
}
我见过的另一种方法是将其包含在引导程序中:
import {bootstrap} from 'angular2/platform/browser';
import {App} from './src/app';
import {provideStore} from '@ngrx/store';
import {ItemsService, items, selectedItem} from './src/items';
bootstrap(App, [
ItemsService, // The actions that consume our store
provideStore({items, selectedItem}) // The store that defines our app state
])
.catch(err => console.error(err));
哪个正确和/或公认的最佳实践?为什么?
我从一个没有rxjs存储的项目中查看了一个随机的app.module.ts文件,想知道它在这样的文件中应该正确的位置:
https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/app/app.module.ts
可选地赞赏任何有关如何与RxJS集成组织“当前” 2017年5月angular2 / 4应用程序的引用。
我希望保持AppModule尽可能干净。
有一天,当我用Angular思考模块结构和SPA设计时,我看了Wassim Chegnam的Tweet。这是关于Angular的模块,他画了这个:
我非常喜欢拥有3个主要模块的想法:
-功能
-共享
-核心
如何使用它们:
forRoot
)所以你的情况,我会放StoreModule.provideStore(AppReducer)
的CoreModule
。(示例)
显然,您可以使用更简单的模块结构,但是在大型应用程序和中小型应用程序中使用这种方式演示如何使用ngrx(Pizza-Sync)之后,感觉就像是一件好事=)。
最后,我的确AppModule
很干净:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CoreModule,
SharedModule,
AppRoutingModule
],
bootstrap: [AppComponent]
})
export class AppModule { }
如果我需要使用角度通用,则从切换app.module.ts
到都没有问题app.module.universal.ts
。
编辑:5月14日(2017年),
我几天前在Github上发布了一个ngrx启动程序,我试图描述所有这些内容,并包括过去8个月来我发现的很多好东西。可能有些人感兴趣:https : //github.com/maxime1992/angular-ngrx-starter
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句