中级第 7 / 17 节35 分钟 · 实操
表单与受控输入 (Controlled Inputs)
React 课程的一部分
在普通的 HTML <input> 里敲一个字母,浏览器自己就把事情办完了:DOM 元素悄无声息地记住你输入的内容,不必告诉别人。只要应用不需要知道框里此刻装着什么,这样就够用了。可是一旦你要校验它、要在内容看起来不对时禁用按钮、或者要在提交时把它发到别处,“浏览器把它记在某个地方”就不够了,组件必须自己持有这个值的一份副本,并且随每一次按键保持同步。这就是 React 表单的全部思路,而且只要亲手写过一个,之后写的每一个表单都是同一个套路。
设想一块白板,旁边站着一位代笔人:谁都不许直接往板上写,想写什么只能告诉代笔人,代笔人先更新自己的笔记,再把笔记抄到白板上。对一块白板来说这很别扭,但好处是代笔人在任何时刻都握着板上内容的一份准确、最新的副本,根本不用走过去看一眼。受控输入的原理一样:不让浏览器的 <input> 自己保管文本,而是由组件把当前值放在状态(state)里,也就是组件跟踪的、会随时间变化并在变化时触发重新渲染的那类数据,输入框只负责显示状态此刻说的内容。
想在真实环境里学习 React 表单与受控输入 (Controlled Inputs) 吗?
点击下方,立即获得一台预装 React 的 Linux 主机,跟懂你代码的 AI 导师一起完成 表单与受控输入 (Controlled Inputs) 的实操练习。
开始这节课表单与受控输入 (Controlled Inputs)你将学到什么
- Controlled input pattern
- Value and onChange together
- Multi-field form state
- OnSubmit and preventDefault
- Gathering form data
用你的语言阅读本课
本课程的所有课时
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小时
