ngrx中有多家商店

时间:2018-03-21 14:45:37

标签: angular ngrx

我正在使用Angular和ngrx编写企业级应用程序。目的是始终使用Flux和ngrx。对于重用和可分离性,我们需要(至少)两个不相互交互的状态存储。但我们确实需要两个存储同时处于活动状态,并且可能从相同的组件访问。

Ngrx似乎是基于假设一次只有一个商店的假设。有没有一种方法可以让我拥有多个Store对象(当然模板化了不同的State对象),并且同时加载和激活它们?

我知道'最佳做法'建议将商店合二为一。除非有一种全新的方法,否则这在这里是不可行的。

2 个答案:

答案 0 :(得分:5)

我建议设置两个功能状态。以下是相关文档: https://github.com/ngrx/platform/blob/master/docs/store/api.md#feature-module-state-composition

虽然它与拥有两个独立的商店不同,但对于大多数实际用途来说都是一样的。加载导入StoreModule.forFeature('featureName', reducers)的模块时会加载功能状态。你可以做这个懒惰或渴望。每个功能状态都可以访问根状态,因此您可以将公共状态置于可以访问的根状态。功能状态永远不应该引用彼此,因为它们可能不会被加载,这将否定拥有它们的原因。

答案 1 :(得分:-1)

我已经使用动作和减速器为多个商店创建了完整的应用程序。我已经在github中上传了zip文件。

https://github.com/akashprince138/multiple_store