一个应用程序中的多个ngrx存储

时间:2017-10-07 09:55:39

标签: angular ngrx ngrx-store angular-providers

我们是一个大型Angular应用程序模块的开发人员。模块彼此独立,由不同的团队开发。我们想在我们的模块中使用ngrx商店。

另一个模块已经有一个ngrx商店。如果我尝试以通常的方式将商店添加到我们的module.ts:

@NgModule({
  imports: [
    ...
    StoreModule.provideStore( ... )
  ],
  ...

它打破了整个应用程序。有没有办法为我们的模块提供单独的商店?

(app使用ngrx2)

1 个答案:

答案 0 :(得分:1)

你可以将商店分开,你可以在启动时用app模块加载一个核心商店,使用forRoot也可以添加metaReducers和initialState

StoreModule.forRoot(reducers, {metaReducers: metaReducers, initialState: getInitialState})

对于延迟加载的模块,您可以使用

将它们添加到商店中
StoreModule.forFeature('gallery', reducers, {initialState: getGalleryInitialState})

延迟加载是ver-4的一项新功能,我不认为ver-2支持划分你的状态,我只是为选择器升级它们有助于减少代码并提高性能阅读更多关于它们{{3 }}