React理念:
第一步:把UI划分出组件层级(单一功能原则:一个组件应该只做一件事情)
第二步:用React创建一个静态版本(创建静态版本时不用state,state用于交互。简单项目自顶向下,复杂项目自底向上)
第三步:定义UI状态的最小表示 (考虑应用所需的最小可变状态集。鉴别是否用state的三个问题:它是通过props从父级传来?如果是,则不是state。随时间推移不变?是,则不是state。可以根据其他state或者props把它计算出来?如果是,则不是state)
确定你的state应该位于哪里(确定每一个需要这个 state 来渲染的组件。找到一个公共所有者组件一个在层级上高于所有其他需要这个 state 的组件的组件这个公共所有者组件或另一个层级更高的组件应该拥有这个 state。如果你没有找到可以拥有这个 state 的组件,创建一个仅用来保存状态的组件并把它加入比这个公共所有者组件层级更高的地方。)
添加反向数据流(传入的回调函数会调用 setState(),这时应用程序会被更新。)