在 Redux 中,reducer 扮演什么角色?请阐述其定义、核心作用以及它在状态管理流程中的位置。
考察说明
考查对 Redux 状态管理核心概念 reducer 的理解。
回答思路
- 【回答框架 1】reducer 是 Redux 中用于更新状态的纯函数,接收当前 state 和 action,返回新 state。它是状态变更的唯一入口,确保状态可预测。
- 【回答框架 2】核心作用:根据 action 类型决定如何计算新状态;保持纯函数特性,不修改原 state,而是返回新对象,便于时间旅行调试和状态追踪。
- 【回答框架 3】在数据流中,dispatch(action) 触发 reducer,reducer 基于旧 state 和 action 返回新 state,store 保存新状态并通知订阅者更新视图。
- 【关键点 1】reducer 必须为纯函数,无副作用。
- 【关键点 2】reducer 不直接修改 state,而是返回新 state 对象。
- 【关键点 3】reducer 是状态变更的唯一来源,保证状态可预测。
- 【易错点 1】在 reducer 中执行异步操作或产生副作用(如请求、Math.random),破坏纯函数特性,导致状态不可预测。
- 【易错点 2】直接修改 state 而非返回新对象,会导致 React 无法检测状态变化,引发组件不更新或调试困难。