视频字幕
React 18+ 的 StrictMode 在开发模式下,会故意对组件进行额外的卸载和重新挂载。这并非真正的双重挂载,而是模拟组件生命周期来帮助开发者发现潜在问题。具体表现为:组件挂载后立即执行清理函数,然后再次执行挂载。这能验证useEffect的清理逻辑是否正确,并测试组件在状态保留场景下的健壮性。注意:此行为仅发生在开发环境,不影响生产环境。
StrictMode 模拟完整的组件生命周期:首先执行挂载和useEffect,然后立即触发清理函数,最后再次执行挂载。这种机制验证组件能否正确处理资源清理如定时器和订阅,确保状态能正确重置,并为React未来的状态保留特性做准备。注意:这仅发生在开发环境,不影响生产环境性能。