聊聊 useState 与 useReducer 的区别
结论:
useState是更轻量的状态更新接口,可视作内置basicStateReducer的useReducer;当状态更新逻辑复杂或需要显式 action/reducer 时用useReducer更合适。
1. 相同点
- 更新都走队列:dispatch 入队 update,render 时计算 nextState
- 都受 lanes/优先级影响,可能被跳过并留到 baseQueue
2. 不同点
useState:action 是值或函数;更直观useReducer:action 自定义 + reducer 统一处理;更可控、可测试
3. 选型建议
- 简单本地状态:
useState - 复杂状态机/需要多人协作约束更新:
useReducer