表单验证是前端开发中不可或缺的环节,React 通过其组件化特性提供了灵活的解决方案。以下是关键实现方式:

1. 原生实现方案

  • 使用 <input> 标签配合 onChange 事件实时校验
  • 通过 valueonBlur 控制输入状态
  • 示例代码:
function MyForm() {
  const [values, setValues] = useState({});
  const [errors, setErrors] = useState({});
  
  const handleChange = (e) => {
    const { name, value } = e.target;
    setValues(prev => ({ ...prev, [name]: value }));
  };
  
  const validate = (values) => {
    let errors = {};
    // 校验逻辑
    return errors;
  };
  
  return (
    <form onSubmit={(e) => { e.preventDefault(); }}>
      {/* 表单字段 */}
    </form>
  );
}

2. 优秀第三方库

  • 🚀 Formik:提供完整的表单处理框架
  • 🧠 React Hook Form:基于自定义 Hook 的高效方案
  • 📚 react-final-form:功能强大的表单验证库

    点击了解更多

3. 校验规则设计

  • 必填字段:required 标签
  • 格式校验:正则表达式匹配
  • 自定义规则:使用 validator 函数
  • 多语言支持:结合 react-intl 实现

4. 错误提示优化

  • 实时反馈:使用 helperText 显示错误信息
  • 样式高亮:通过 error 类名标记错误字段
  • 动态提示:根据校验结果改变提示文案
  • 案例分析:邮箱格式校验示意图
表单验证_邮箱校验

深入学习React表单验证最佳实践