最近,ngrx商店改变了在角度应用程序中注册商店变量的方式。
StoreModule.forRoot()和StoreModule.forFeature()之间的区别是什么
我们是否需要注册才能使应用程序正常工作?
它与懒惰加载的减速器一起使用。当你有(延迟加载)功能模块并且想要在该模块中注册reducer时,则使用forFeature
。否则,在你的AppModule
你使用forRoot
。
ref:https://github.com/ngrx/platform/blob/master/docs/store/api.md#injecting-reducers
始终导入forRoot()调用我认为这可能非常明显,但只是为了记录,您需要确保已经在主应用程序中导入了根存储和效果模块。
imports: [
StoreModule.forRoot({}),
EffectsModule.forRoot([]),
...
如果你有适用于这个级别的缩减器或效果,你应该在这里添加它们,但即使你的应用程序的根级没有任何缩减器或效果,你需要进行这两个调用。否则,forFeature()调用将无法访问根存储或效果位置以添加该功能的reducers和效果。