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