【React】哪些数据应该放到state中?
1.识别出最小的(但是完整的)代表UI的state:
为了正确构建应用,首先需要考虑应用需要的最小的可变 state 数据模型集合。此处关键点在于精简:不要存储重复的数据。构造出绝对最小的满足应用需要的最小 state 是有必要的,并且计算出其它强烈需要的东西。
在判断哪一个是 state 时,简单地对每一项数据提出三个问题:
1.是否是从父级通过 props 传入的?如果是,可能不是 state 。
2.是否会随着时间改变?如果不是,可能不是 state 。
3.能根据组件中其它 state 数据或者 props 计算出来吗?如果是,就不是 state 。
2.哪个组件应该拥有哪些state数据模型:
对于应用中的每一个 state 数据:
1.找出每一个基于那个 state 渲染界面的组件。找出共同的祖先组件(某个单个的组件,在组件树中位于需要这个 state 的所有组件的上面)。
2.要么是共同的祖先组件,要么是另外一个在组件树中位于更高层级的组件应该拥有这个 state 。
3.如果找不出拥有这个 state 数据模型的合适的组件,创建一个新的组件来维护这个 state ,然后添加到组件树中,层级位于所有共同拥有者组件的上面。