首页 文章

ngrx中有多家商店

提问于
浏览
2

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

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

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

1 回答

  • 3

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

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

相关问题