在 React 中,State 被设计为不可变(immutable),这是 React 状态管理的核心原则之一。理解这一点对于编写可预测、高性能的 React 应用至关重要。 下面从多个角度解释为什么 State 必须是不可变的: --- ✅ 1. 触发重新渲染的机制依赖于变化检测 React 使用 浅比较(shallow comparison) 来判断组件是否需要重新渲染。 - 当你调用 时,React 会比较新旧 state。 - 如果 state 是可变对象(比如直接修改原对象),那么即使内容变了,引用地址没变,React 无法检测到变化,也就不会触发重新渲染。 - 通过创建新的 state(不可变更新),确保每次更新都生成一个新的对象/数组,引用发生变化,React 能正确识别并更新 UI。 > 💡 React Hooks()同理:, --- ✅ 2. 时间旅行调试(Time Travel Debugging)成为可能 React DevTools(尤其是配合 Redux)支持“时间旅行”功能 —— 可以回退到之前的 state。 - 前提:state history(...