Notes

useReducer 与 useState 的区别

一句话结论:useState 可以看作是内置了 basicStateReduceruseReducer;当状态更新逻辑复杂、需要把“如何更新”显式化时,用 useReducer 更合适。

1. 相同点

  • 都是“入队 update + 调度 render + 在 render 中计算新 state”
  • 都有 queue、pending/baseQueue、lane 等机制

2. 不同点

  • useState:action 要么是值,要么是 (prev) => next
  • useReducer:action 完全自定义,通过 reducer 计算 nextState

3. 什么时候选谁

  • 小状态、简单更新:useState
  • 复杂状态机、多人协作、需要可测试的更新逻辑:useReducer

关联阅读

cd ..