StoreModule.forRoot()和StoreModule.forFeature()之间的区别是什么

问题描述 投票:23回答:2

最近,ngrx商店改变了在角度应用程序中注册商店变量的方式。

StoreModule.forRoot()和StoreModule.forFeature()之间的区别是什么

我们是否需要注册才能使应用程序正常工作?

angular ngrx-store ngrx-store-4.0
2个回答
13
投票

它与懒惰加载的减速器一起使用。当你有(延迟加载)功能模块并且想要在该模块中注册reducer时,则使用forFeature。否则,在你的AppModule你使用forRoot

ref:https://github.com/ngrx/platform/blob/master/docs/store/api.md#injecting-reducers


7
投票

始终导入forRoot()调用我认为这可能非常明显,但只是为了记录,您需要确保已经在主应用程序中导入了根存储和效果模块。

imports: [
    StoreModule.forRoot({}),
    EffectsModule.forRoot([]),
    ...

如果你有适用于这个级别的缩减器或效果,你应该在这里添加它们,但即使你的应用程序的根级没有任何缩减器或效果,你需要进行这两个调用。否则,forFeature()调用将无法访问根存储或效果位置以添加该功能的reducers和效果。

© www.soinside.com 2019 - 2024. All rights reserved.