在angular2 / 4中包括rxjs存储的最佳实践/正确方法是什么,应该在引导程序中还是在导入中?

罗兰多

当我读到有关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应用程序的引用。

1992年

我希望保持AppModule尽可能干净。

有一天,当我用Angular思考模块结构和SPA设计时,我看了Wassim ChegnamTweet这是关于Angular的模块,他画了这个:在此处输入图片说明

我非常喜欢拥有3个主要模块的想法:
-功能
-共享
-核心

如何使用它们:

  • 与我们的应用直接相关的所有功能
  • 共享了我们想要从任何地方轻松导入的所有内容
  • 与项目配置相关的所有内容的核心(主要是带有的模块forRoot

所以你的情况,我会放StoreModule.provideStore(AppReducer)CoreModule示例

显然,您可以使用更简单的模块结构,但是在大型应用程序和中小型应用程序中使用这种方式演示如何使用ngrxPizza-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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章