Redux应用执行过程中的任何一个时刻本质上都是该时刻的应用state的反映。
设计state时,最重要的是记住一句话:像设计数据库一样设计state。
把state看作一个数据库,state中的每一部分状态看作数据库中的一张表,状态中的每一个字段对应表的一个字段。
设计一个数据库应该遵循以下三个原则:
- 数据按照领域分类存储在不同的表中,不同的表中存储的列数据不能重复;
- 表中每一列的数据都依赖于这张表的主键;
- 表中除了主键外,其他列之间不能有直接的依赖关系;
对应的设计state需要遵循的原则:
- 把整个应用的状态按照领域分成若干子状态,子状态之间不能保存重复的数据;
- state以键值对的结构存储数据,以记录的key或者ID作为记录的索引,记录中的其他字段都依赖于索引;
- state中不能保存可以通过state中的已有字段计算而来的数据,即,state中的字段不互相依赖;