------state
1 state 的作用
state是React中组建的一个对象,React把用户界面当做是一个状态机,想想他是不同状态然后渲染这些状态,可以轻松让用户界面与数据保持一致。。。在React中,更新组件的state。会导致重新渲染用户界面(不要操作DOM)简单来说就是用户界面会随着state的变化而变化。
2 state工作的原理
常用的通知React数据变化的方法是调用setState(data, callback)。这个方法会合并data到this.state,并重新渲染组件,渲染完成后,调用可选的callback回调,大部分情况不需要提供callback,因为react会负责把界面更新到最新状态。
3 哪些组件应该有state
大部分组件的工作应该是从props里取数据并渲染出来,但是,有时候需要用户输入,服务器请求或者时间变化等作出响应,这个时候才才需要state。组件应该尽可能的无状态化,这样能隔离state,把他放到最合适的地方,也能减少冗余并已于解释程序运行过程。程序的模式就是创建多个值负责渲染数据的无状态组件,在他们的上层创建一个有状态组价并把它的状态通过props传给子级,有状态的组件封装了所有用户交互逻辑,而这些无状态组件只负责声明式的渲染数据。
4 哪些应该作为state
state应该包括那些被组件的事件处理器改变并触发用户界面更新的数据,这些数据一般很小而且能被json序列化,当创建一个状态化的组件的时候,应该保持数据的精简,然后存入this.state。。。在render()中在根据state来计算需要的其他数据,因为如果在state里添加冗余数据或计算所得数据,经常需要手动保持数据同步。
5 哪些不应该作为state
this.state应该仅包括能表示用户界面状态所需要的最少数据,因此,不应该包括:
计算所得的数据。。。
react组件: 在render()里使用props和state来创建他
基于props的重复数据,尽可能保持用props来作为唯一的数据来源,把props保存到state中的有效的场景是需要知道以前的值得时候,因为未来的props可能会发生变化