React空依赖数组的useEffect为何执行两次?
React useEffect 空依赖却执行两次的原因
这是React 18+版本在**开发环境严格模式(Strict Mode)**下的默认行为:
- 开发模式中,Strict Mode会刻意重复执行组件的挂载相关逻辑(包括空依赖数组的useEffect),目的是帮你检测副作用代码里的潜在问题——比如未清理的定时器、订阅,或者其他可能导致内存泄漏的操作。
- 生产环境下,这个重复执行的机制会被禁用,此时空依赖的useEffect只会在组件挂载完成后执行一次。
如果想临时验证这个结论,可以移除根组件外层的<StrictMode>标签,控制台就只会打印一次日志,但不建议在日常开发中这么做,Strict Mode的检测能帮你提前规避很多线上问题。
内容的提问来源于stack exchange,提问作者Paras
相关产品推荐
相关产品推荐

