5

我们是大型 Angular 应用程序模块的开发人员。模块是相互独立的,它们是由不同的团队开发的。我们想在我们的模块中使用一个 ngrx 存储。

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

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

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

(应用程序使用ngrx2)

4

1 回答 1

1

您可以将存储区分开,您可以在启动时使用 forRoot 使用应用程序模块加载核心存储区,还可以向其中添加 metaReducers 和 initialState

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

对于延迟加载的模块,您可以稍后将它们添加到商店使用

StoreModule.forFeature('gallery', reducers, {initialState: getGalleryInitialState})

延迟加载是版本 4 的新功能,我不认为版本 2 支持划分存储状态,我只为选择器升级,它们有助于减少代码并提高性能,在这里阅读更多关于它们的信息

于 2017-10-16T21:02:19.763 回答