React setState 为何是异步的

1. 保证内部的一致性

因为同步模型中,虽然 this.state 会立即更新,但是 this.props 并不会。而且在没有重渲染父组件的情况下,我们不能立即更新 this.props。如果要立即更新 this.props (也就是立即重渲染父组件),就必须放弃批处理(根据情况的不同,性能可能会有显著的下降)
React 模型更愿意保证内部的一致性和状态提升的安全性,而不总是追求代码的简洁性。

2. 性能优化

React 会依据不同的调用源,给不同的 setState() 调用分配不同的优先级。调用源包括事件处理、网络请求、动画等。

3. 更多的可能性

可以实现 更新 state, 在幕后渲染新的页面, 还保持旧的页面可以交互

你可能感兴趣的:(React setState 为何是异步的)