Forms
表单的难点通常不是输入框本身,而是状态同步、校验、可访问性与提交体验。
TL;DR
- 简单表单:优先用原生表单语义(label、name、required)与浏览器能力。
- 复杂交互:再引入受控组件与表单状态管理,避免全表单每次输入都重渲染。
- 把可访问性当作功能的一部分:键盘、错误提示与焦点管理必须可用。
受控 vs 非受控
受控组件更可预测;非受控更接近原生,性能更好。选择取决于校验/联动/序列化需求。
常见坑
- 把每个字段都做成受控但没有分片更新,导致输入卡顿。
- 错误提示不关联到输入(缺少 aria-describedby/role),读屏不可用。
延伸阅读
- Learn:状态响应
- Guides:Accessibility
这篇文章有帮助吗?
Previous / Next
Related Links