中级第 4 / 17 节35 分钟 · 实操
使用 useState 管理状态 (State)
React 课程的一部分
到目前为止你写的每个组件,只要传进去的属性相同,渲染出来的结果就永远相同。对一个标题或一张卡片来说这没什么问题,但只要需要让用户盯着页面就能改动点什么,它立刻就撑不住了:点一下就往上加的计数器、能来回翻转的开关、把你刚敲进去的内容显示出来的文本框。普通的 JavaScript 变量干不了这活。假如你在组件里写 let count = 0;,再在事件处理函数里更新它,React 根本不会知道这个值变了,因为组件里的局部变量每次渲染都会重新造一遍,函数一跑完就被丢掉。你需要一种方式告诉 React:“把这个值在多次渲染之间记住,而且它一变就重新渲染我。”这正是状态的含义,而 useState 就是给组件分配一份专属状态的工具,这类工具叫做钩子 (hook)。
把组件的每一次渲染都想成一张照片:在某个瞬间拍下来,记录的是当时那份属性和那份状态下组件的样子。调用组件函数时,JavaScript 从上到下正好跑一遍,产出一张快照,也就是它返回的那段 JSX。函数里声明的每个普通变量都是为这一张快照现造出来的,拍完就扔。所以它们靠自己没办法在多次渲染之间留住任何东西。
想在真实环境里学习 React 使用 useState 管理状态 (State) 吗?
点击下方,立即获得一台预装 React 的 Linux 主机,跟懂你代码的 AI 导师一起完成 使用 useState 管理状态 (State) 的实操练习。
开始这节课使用 useState 管理状态 (State)你将学到什么
- UseState hook
- Reading state
- Calling the setter
- Updater function form
- Never mutate state
- Counter pattern
用你的语言阅读本课
本课程的所有课时
17 节- 1什么是 React?25 分钟
- 2JSX 与组件 (Components)30 分钟
- 3属性 (Props)30 分钟
- 4使用 useState 管理状态 (State)35 分钟
- 5处理事件30 分钟
- 6条件渲染与列表30 分钟
- 7表单与受控输入 (Controlled Inputs)35 分钟
- 8使用 useEffect 实现副作用 (Effects)40 分钟
- 9数据获取40 分钟
- 10组件组合 (Component Composition)35 分钟
- 11Context 与 useContext35 分钟
- 12useReducer35 分钟
- 13自定义钩子 (Hooks)35 分钟
- 14性能与记忆化 (Memoization)35 分钟
- 15使用 React Router 进行路由40 分钟
- 16测试 React 组件 (Components)40 分钟
- 17顶点项目:待办事项应用60 分钟
探索其他课程
Python
19 节 · 9.3小时
Go
20 节 · 12.3小时
Linux
17 节 · 8.5小时
Docker
13 节 · 6.6小时
Git
13 节 · 5.9小时
Kubernetes
14 节 · 8小时
Ansible
12 节 · 6.1小时
Bash
12 节 · 5.7小时
Helm
10 节 · 5.4小时
GitLab CI
11 节 · 5.8小时
Jenkins
11 节 · 5.3小时
PostgreSQL
14 节 · 7.6小时
MySQL
13 节 · 6.8小时
Web
14 节 · 5.9小时
TypeScript
18 节 · 7.7小时
Vibe Coding
12 节 · 5.8小时
Prompt Engineering
11 节 · 6.2小时
Vibe 编程:基础
12 节 · 4.5小时
Vibe 编程:从原型到生产
12 节 · 5.5小时
Vibe 编程:多智能体工程
12 节 · 5.3小时
Vibe 编程:高级工程
12 节 · 7.3小时
