React Hook Form
Uncontrolled-by-default form handling that barely re-renders, pairs well with a Zod resolver for validation.
What is React Hook Form?
React Hook Form is a form-handling library for React that keeps most form state uncontrolled by default, meaning individual field changes don't trigger a re-render of your whole form the way a fully controlled approach does. That design choice is the whole reason people reach for it: forms with a lot of fields stay fast, and the API is small and hook-based rather than requiring you to wire up a Context provider or a heavier state library. It pairs naturally with a schema validation library like Zod through its resolver system.
Key features
- Uncontrolled-by-default architecture that minimizes re-renders even on large forms
- Resolver pattern for plugging in schema validation libraries, Zod being the most common pairing
- Small bundle size and minimal API surface, mostly built around a single
useFormhook - Built-in support for field arrays, nested objects, and complex form structures
- Works with both native form inputs and custom/controlled UI components when needed
Who it's for
A strong default for any React project with non-trivial forms, especially ones with many fields or frequent validation, where re-render performance actually matters. For a single simple form with a couple of fields, plain React state is often enough and doesn't need the extra dependency.
Pricing
Free and open-source, no paid tier.