You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中重渲染何时触发?函数执行中还是完成后?

React 重渲染的触发时机

重渲染会在someFunction执行完成后触发,而非第1行修改state之后立刻触发。

React对同步执行上下文里的state更新会做批量处理:在当前函数执行过程中,不管你修改多少次state,React都不会立刻启动重渲染流程,而是先把这些state更新暂存起来,等当前函数执行完毕、当前事件循环的同步任务全部完成后,再统一计算state的最终变化,然后触发一次组件重渲染。

对应你给出的伪代码场景:第1行修改了state x,但此时React不会马上触发重渲染,而是继续执行函数里从第2行到第149行的所有代码,等整个someFunction执行完成后,才会触发组件的重渲染。

额外补充:如果是在异步操作(比如setTimeout、Promise回调)里修改state,这类场景下React不会做批量处理,每次state修改后会立刻触发重渲染,但同步函数内的state更新都遵循上述批量处理、函数执行完再重渲染的规则。

内容的提问来源于stack exchange,提问作者Peter_19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 16:08:10