Redux - 单一不可变状态。每个应用程序还是每个模块?

Redux - Single immutable state. Per app or per module?

我有一个关于基于 Redux 的应用程序的概念问题。

前言

我正在设计我的新 Angular2 应用程序。应用程序的基本功能将显示一些数据 tables(但 tables 的数量和数据将是动态的)。我假设我会创建主 AppModule 和 TableModule(在主模块中使用)。在创建应用程序时,我想使用 Redux ang ngrx libraries.

我不想在计划层面犯错误。困扰我的一件事:


问题:

应用程序(单个,immutable)状态应该是每个应用程序还是每个模块?


描述:

我认为隔离 table 以分离模块很重要,因为我的 table 有很多功能。为另一个模块中使用的模块创建单独的状态是否正确?这是否符合 Redux 的基本假设? (单一状态?) 会造成哪些威胁?

请有使用过基于Redux的app的朋友反馈一下。非常感谢!

Redux 旨在将应用程序的所有状态存储在一个位置,即所谓的 store,它包含应用程序的整个状态树。

如果您也愿意,可以在单独的模块中添加一个 store,但应用程序中只有一个状态树。

您可以组织状态树来保持 table 的概念,正如您在问题中提到的那样。

我建议你看看这个 redux 文档中关于状态组织和示例的一些建议:Normalizing State Shape