React 中的this.setState

在react中如何修改state中的数据

第一种写法:this.setState()

参数1:对象 需要修改的数据

参数2:回调

this.setState是一个异步的

setState通过一个队列机制实现state的更新。当执行setState时,会把需要更新的state合并后放入状态队列,而不会立刻更新this.state,利用这个队列机制可以高效的批量的更新state。

* 在官方的描述中,setState操作并不保证是同步的,也可以认为是异步的。

* React在setState之后,会经对state进行diff,判断是否有改变,然后去diff dom决定是否要更新UI。如果这一系列过程立刻发生在每一个setState之后,就可能会有性能问题。

* 在短时间内频繁setState。React会将state的改变压入栈中,在合适的时机,批量更新state和视图,达到提高性能的效果。