Version 7 | Version 6
- Built with performance and DX in mind
- Embraces native form validation
- Out of the box integration with UI libraries
- Small size and no dependencies
- Follows HTML standard for validation
- Support Yup, Zod, Superstruct, Joi, Vest, class-validator, io-ts, nope or custom
npm install react-hook-form
import React from 'react'; import { useForm } from 'react-hook-form'; function App() { const { register, handleSubmit, formState: { errors }, } = useForm(); const onSubmit = (data) => console.log(data); return ( <form onSubmit={handleSubmit(onSubmit)}> <input {...register('firstName')} /> {/* register an input */} <input {...register('lastName', { required: true })} /> {errors.lastName && <p>Last name is required.</p>} <input {...register('age', { pattern: /\d+/ })} /> {errors.age && <p>Please enter number for age.</p>} <input type="submit" /> </form> ); }
Thanks go to these kind and lovely sponsors (companies and individuals)!
@sayav @lemcii @washingtonsoares @lixunn @SamSamskies @peaonunes @wilhelmeek @iwarner @joejknowles @chris-gunawardena @Tymek @Luchanso @vcarel @gragland @tjshipe @krnlde @msutkowski @mlukaszczyk
Thanks go to all our backers! [Become a backer].
Thanks go to these wonderful organizations! [Contribute].
Thanks go to these wonderful people! [Become a contributor].