表单验证是前端开发中不可或缺的环节,React 通过其组件化特性提供了灵活的解决方案。以下是关键实现方式:
1. 原生实现方案
- 使用
<input>
标签配合onChange
事件实时校验 - 通过
value
和onBlur
控制输入状态 - 示例代码:
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
类名标记错误字段 - 动态提示:根据校验结果改变提示文案
- 案例分析:邮箱格式校验示意图