useState 是 React 最基础的 Hook,用于在函数组件中添加状态管理能力。

useState Hook 详解

useState 是 React 最基础的 Hook,用于在函数组件中添加状态。

// 基本语法

const [state, setState] = useState(initialValue);

// 更新状态
setState(newValue);

// 函数式更新(基于旧值)
setState(prev => prev + 1);

示例 1: 基本计数器

0
const [count, setCount] = useState(0);

示例 2: 函数式更新

0

说明:

  • 错误方式只增加 1(因为闭包中的 count 是同一个值)
  • 正确方式增加 3(函数式更新获取最新值)

示例 3: 对象状态

当前状态:

{
  "name": "张三",
  "email": "zhangsan@example.com",
  "age": 25
}
关键点: 更新对象时必须使用展开运算符 ...user 保留其他字段

示例 4: 数组状态

学习 useState
理解状态更新

数组操作方法:

  • 添加:[...todos, newItem]
  • 删除:todos.filter(t => t.id !== id)
  • 更新:todos.map(t => t.id === id ? newItem : t)

示例 5: 惰性初始化

初始随机值:97

重渲染次数:0

说明: 打开控制台,点击"触发重渲染"按钮, 你会发现"惰性初始化"只在首次渲染时打印一次。

// ❌ 每次渲染都执行
useState(expensiveComputation())

// ✅ 只在首次渲染执行
useState(() => expensiveComputation())