Provides
- Input validation rules
- Error messages for invalid fields
- Form submission handling
- Controlled form state management
Use When
- Building login forms
- Signup/registration forms
- Data entry forms
- Any user input workflow
Instructions
1. Initialize Form State
- Maintain
valuesobject for inputs - Maintain
errorsobject for validation errors - Maintain
loadingstate for submission
2. Handle Input Changes
- Update form state on every input change
- Clear field-level errors when user edits
3. Validate Input
- Validate required fields
- Validate formats (email, password rules)
- Return errors object
4. Handle Form Submit
- Validate all fields
- If errors exist → stop submission
- If valid → call API
- Handle success and failure
- Update loading state
Standard Flow
handleSubmit() {
const errors = validate(values);
if (Object.keys(errors).length > 0) {
setErrors(errors);
return;
}
submitForm(values);
}