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

为何useState传入相同值仍会触发重新渲染?

React 18.2 中重复渲染的原因及是否需要关注

原因解析

官方文档里“仅当state值变化时触发重渲染”的表述是简化后的核心逻辑,但React 18在开发环境的Strict Mode下新增了自动双渲染机制:

Strict Mode会刻意重复执行组件渲染、useEffect等生命周期逻辑,目的是提前暴露那些依赖执行次数的潜在问题(比如全局状态未清理、订阅泄漏等)。

你测试时遇到的重复渲染,正是这个机制导致的——即使state值没有变化,开发环境下Strict Mode也会触发两次渲染,而生产环境中这个行为会被自动禁用。

是否需要关注

  • 开发环境下的这种重复渲染是正常的调试手段,无需过度在意,只要你的组件是纯函数、副作用清理逻辑正确,就不会影响生产环境的表现。
  • 如果开发环境中双渲染引发了异常(比如重复发送请求),说明你的组件副作用逻辑存在问题,需要针对性修复(比如利用useEffect的清理函数,或用useRef标记首次执行)。

React 18.2重复渲染截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:49:50