🧰 Form Libraries: Formik, React Hook Form, Yup
Managing complex forms in React becomes easier with libraries like Formik, React Hook Form, and Yup for validation. Here's an overview of each.
📦 1. Formik
Formik simplifies form state, validation, and submission. It integrates well with Yup for schema-based validation.
import { Formik, Form, Field, ErrorMessage } from 'formik';
<Formik
initialValues={{ email: '' }}
onSubmit={(values) => console.log(values)}
>
<Form>
<Field name="email" type="email" />
<ErrorMessage name="email" />
<button type="submit">Submit</button>
</Form>
</Formik>
🎣 2. React Hook Form (RHF)
A lightweight and performant form library that uses React hooks. Very fast and requires minimal re-renders.
import { useForm } from 'react-hook-form';
const { register, handleSubmit } = useForm();
const onSubmit = data => console.log(data);
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("email")} />
<button type="submit">Submit</button>
</form>
✅ 3. Yup (Validation)
Yup is a JavaScript schema builder for validating values. Commonly used with Formik or RHF.
import * as Yup from 'yup';
const schema = Yup.object({
email: Yup.string().email().required(),
});
🤔 When to Use What?
- Formik: Beginner-friendly, good for complex forms
- React Hook Form: Best performance, lightweight
- Yup: Use it for schema-based validations
All of these tools enhance productivity and make your forms clean, reliable, and scalable.