elc*_*iga 5 angular-providers ngrx angular ngrx-store
我们是大型 Angular 应用程序模块的开发人员。模块彼此独立,由不同的团队开发。我们想在我们的模块中使用 ngrx 存储。
另一个模块已经有一个 ngrx 存储。如果我尝试以通常的方式将商店添加到我们的 module.ts 中:
@NgModule({
imports: [
...
StoreModule.provideStore( ... )
],
...
Run Code Online (Sandbox Code Playgroud)
它打破了整个应用程序。有没有办法为我们的模块提供一个单独的存储?
(应用程序使用 ngrx2)
您可以划分存储,例如,您可以使用 forRoot 在启动时使用应用程序模块加载一个核心存储,同时向其中添加 metaReducers 和 initialState
StoreModule.forRoot(reducers, {metaReducers: metaReducers, initialState: getInitialState})
Run Code Online (Sandbox Code Playgroud)
对于延迟加载的模块,您可以稍后使用将它们添加到商店中
StoreModule.forFeature('gallery', reducers, {initialState: getGalleryInitialState})
Run Code Online (Sandbox Code Playgroud)
延迟加载是 ver-4 的新功能,我认为 ver-2 不支持划分存储状态,我只是为了选择器而升级,它们有助于减少代码并提高性能,请在此处阅读有关它们的更多信息