渐进式编程课
React 目录
第 5 课2026.09.04

解释同一次点击连续两次设置为何只加一。

第 5 课:事件中的状态快照

  • 日期:2026-09-04
  • 课程序号:第 5 课
  • 知识点:渲染快照与替换更新

用途

解释同一次点击连续两次设置为何只加一。

核心概念

事件处理器读取创建它的那次渲染值;setter 不会立即改变闭包内 count。

最小代码或操作示例

jsx
import { useState } from "react";
export default function App() {
  const [count, setCount] = useState(0);
  return <button onClick={() => {
    setCount(count + 1);
    setCount(count + 1);
  }}>练习 {count} 次</button>;
}

3~5 分钟练习

点击一次后把两次调用都改成 setCount(c => c + 1),再次比较每次点击增量。

参考答案

原代码每次 +1,两次都是提交相同的新值;更新函数版本每次 +2。保持更新函数纯粹。

与上一课的联系

上一课学习函数式更新,本课通过替换更新的对照解释原因。沿用客户端组件入口。

参考资料