React setState 为何是异步的

2018-07-03  本文已影响194人  Oo晨晨oO

1. 保证内部的一致性

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

2. 性能优化

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

3. 更多的可能性

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

上一篇 下一篇

猜你喜欢

热点阅读