react-hook-form

? React custom hook for form validation without the hassle

Github stars Tracking Chart

npm downloads
npm
dep
npm
Coverage Status

Tweet Join the community on Spectrum

??English, ?? 简体中文, ?? 日本語, ??한국어, ??Français, ??Italiano, ??Português, ??Español, ??Русский

Features

  • Built with performance and DX in mind
  • Embrace uncontrolled form validation
  • Improve controlled form's performance
  • Tiny size without any dependency
  • Follows HTML standard for validation
  • Compatible with React Native
  • Supports Yup, Joi, Superstruct or custom
  • Supports native browser validation
  • Build forms quickly with the form builder

Install

$ npm install react-hook-form

Quickstart

import React from 'react';
import { useForm } from 'react-hook-form';

function App() {
  const { register, handleSubmit, errors } = useForm(); // initialise the hook
  const onSubmit = data => {
    console.log(data);
  };

  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input name="firstname" ref={register} /> {/* register an input */}

      <input name="lastname" ref={register({ required: true })} />
      {errors.lastname && 'Last name is required.'}

      <input name="age" ref={register({ pattern: /\d+/ })} />
      {errors.age && 'Please enter number for age.'}

      <input type="submit" />
    </form>
  );
}

Backers

Thanks goes to all our backers! [Become a backer].

Contributors

Thanks goes to these wonderful people. [Become a contributor].

Main metrics

Overview
Name With Ownerreact-hook-form/react-hook-form
Primary LanguageTypeScript
Program languageTypeScript (Language Count: 4)
Platform
License:MIT License
所有者活动
Created At2019-03-05 23:47:10
Pushed At2025-04-24 21:55:09
Last Commit At2025-04-25 07:54:38
Release Count719
Last Release Namev7.56.1 (Posted on 2025-04-23 07:49:52)
First Release Namev0.0.2 (Posted on 2019-03-17 20:00:08)
用户参与
Stargazers Count42.9k
Watchers Count174
Fork Count2.2k
Commits Count3.8k
Has Issues Enabled
Issues Count4728
Issue Open Count68
Pull Requests Count2014
Pull Requests Open Count45
Pull Requests Close Count454
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private