React Hook Form is a powerful library in the React ecosystem that allows you to easily create forms in your React applications without the need for complex state management or class components. It leverages the power of React hooks to simplify form handling and validation, making it easier and faster to build form components.
In this tutorial, we will walk through the basics of React Hook Form and how to use it in your React applications.
Installing React Hook Form
To get started with React Hook Form, you first need to install the library in your project. You can do this using npm or yarn by running the following command in your terminal:
npm install react-hook-form
or
yarn add react-hook-form
Using React Hook Form
Once you have installed React Hook Form, you can start using it in your components. To use React Hook Form, you need to wrap your form component with the useForm
hook, which initializes the form state and provides a set of methods and utilities for handling the form.
Here’s an example of how you can set up a simple form using React Hook Form:
import React from 'react';
import { useForm } from 'react-hook-form';
const MyForm = () => {
const { register, handleSubmit } = useForm();
const onSubmit = (data) => {
console.log(data);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register('firstName')} />
<input {...register('lastName')} />
<button type="submit">Submit</button>
</form>
);
};
export default MyForm;
In the example above, we imported the useForm
hook from the react-hook-form
package and called it in our component to initialize the form state. We then used the register
function provided by the hook to register our form inputs, allowing React Hook Form to track their values and state.
We also defined an onSubmit
function that will be called when the form is submitted. Inside this function, we can access the form data by passing it as a parameter.
Form Validation with React Hook Form
One of the powerful features of React Hook Form is its built-in support for form validation. You can easily set up validation rules for your form inputs using the rules
object when registering your inputs.
Here’s an example of how you can add validation to a form input using React Hook Form:
import React from 'react';
import { useForm } from 'react-hook-form';
const MyForm = () => {
const { register, handleSubmit, formState: { errors } } = useForm();
const onSubmit = (data) => {
console.log(data);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register('firstName', { required: true })} />
{errors.firstName && <span>This field is required</span>}
<input {...register('email', { required: true, pattern: /^S+@S+$/i })} />
{errors.email && <span>Please enter a valid email address</span>}
<button type="submit">Submit</button>
</form>
);
};
export default MyForm;
In the example above, we added validation rules to the firstName
and email
inputs by passing an object with the required
and pattern
properties to the register
function. The required
rule ensures that the field is not empty, while the pattern
rule checks if the input matches a specific pattern (in this case, a valid email address).
We also used the formState
object provided by React Hook Form to access the errors
property, which contains validation errors for the form inputs. We then displayed error messages next to the inputs if the corresponding validation rule is not met.
Conclusion
React Hook Form is a powerful library for handling forms in React applications. It simplifies the process of creating and managing forms by leveraging the power of React hooks and providing a set of methods and utilities for form handling and validation. With React Hook Form, you can build complex forms with ease and efficiency, making it a valuable tool for any React developer.
React hook form+ zod resolver is over powered combo🔥🔥🔥
The react og is back
Are you coming to any meetups in Delhi?
Thanks