setState 是异步的吗?为什么 setState 在 React 中是异步而不是同步?
Is setState() is async? Why is setState() in React Async instead of Sync?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: Frontend
标签: setState, Async, Batching, Re-rendering
参考答案摘要
答案 setState() 操作是异步的,并且为了性能收益会被批处理(batched)。这在文档中有说明。 setState() 并不会立刻修改 this.state,而是创建一个待处理的 state 变更(pending state transition)。在调用该方法后立刻访问 this.state,可能会返回当前(旧的)值。对 setState 的调用没有同步执行的保证,并且可能会为了性能收...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。