Redux 的单向数据流为什么强调 reducer 的纯粹性?
参考答案
Redux 通过 action 描述发生了什么,由 reducer 根据旧状态和 action 计算新状态,再让界面订阅变化。纯 reducer 使更新可以被预测、测试和记录,而不是在一次状态计算中夹杂不可控副作用。
异步请求和其他副作用通常在中间件或相应工具层处理。现代 Redux 开发通常采用 Redux Toolkit,某些看似直接修改状态的写法由 Immer 等机制转换,不等于可以任意修改外部对象。
是否需要 Redux 应根据共享范围、更新复杂度和调试需求决定。服务端数据缓存与客户端交互状态也有不同生命周期,不应把所有请求结果简单复制到全局对象后手动维护一切。