useReducer 用于管理复杂状态逻辑,通过 reducer 函数集中处理状态更新。

useReducer Hook 详解

useReducer 用于管理复杂状态逻辑,通过 reducer 函数集中处理状态更新。

// 基本语法

const [state, dispatch] = useReducer(reducer, initialState);

// Reducer 函数
function reducer(state, action) {
  switch (action.type) {
    case 'INCREMENT':
      return { count: state.count + 1 };
    default:
      return state;
  }
}

// 触发更新
dispatch({ type: 'INCREMENT' });

示例 1: useState vs useReducer

useState 版本

0

useReducer 版本

0

示例 2: Todo 列表

学习 useReducer
理解 action 和 reducer
实践复杂状态管理
2 项未完成

示例 3: 表单状态管理

当前状态:

{
  "values": {
    "username": "",
    "email": "",
    "password": ""
  },
  "errors": {},
  "isSubmitting": false,
  "isSubmitted": false
}

示例 4: 惰性初始化

10

历史记录:

10

说明: 打开控制台,"惰性初始化执行"只会打印一次(首次渲染), 点击重置时会再次打印。