Forms

表单的难点通常不是输入框本身,而是状态同步、校验、可访问性与提交体验。

TL;DR
  • 简单表单:优先用原生表单语义(label、name、required)与浏览器能力。
  • 复杂交互:再引入受控组件与表单状态管理,避免全表单每次输入都重渲染。
  • 把可访问性当作功能的一部分:键盘、错误提示与焦点管理必须可用。

受控 vs 非受控

受控组件更可预测;非受控更接近原生,性能更好。选择取决于校验/联动/序列化需求。

常见坑

  • 把每个字段都做成受控但没有分片更新,导致输入卡顿。
  • 错误提示不关联到输入(缺少 aria-describedby/role),读屏不可用。

延伸阅读

这篇文章有帮助吗?