React Hook Form é uma biblioteca para gerenciamento de formulários em aplicações React. Ela é fácil de usar, tem uma pequena pegada de memória e oferece muitas funcionalidades úteis para formulários.
Para começar a usar o React Hook Form, você precisará instalá-lo como uma dependência do seu projeto. Você pode fazer isso usando o seguinte comando:
npm install react-hook-form
Ou, se você estiver usando o Yarn:
yarn add react-hook-form
Uma vez instalado, você pode começar a usá-lo em qualquer componente do seu projeto. Primeiro, importe o React Hook Form no seu componente:
import { useForm } from 'react-hook-form';
Em seguida, chame o hook useForm
no seu componente e armazene o retorno em uma variável:
const { register, handleSubmit, errors } = useForm();
O hook useForm
retorna três objetos:
register
: um objeto que permite que você registre campos de formulário.handleSubmit
: uma função que você pode usar para processar o formulário quando ele é enviado.errors
: um objeto que contém quaisquer erros de validação dos campos do formulário.
Agora, você pode começar a usar esses objetos em seu formulário.
Para registrar um campo de formulário, basta adicionar um atributo ref
ao elemento de entrada e passar o objeto register
como o valor. Por exemplo, aqui está como você poderia fazer isso para um campo de texto:
<input type="text" ref={register} />
Você também pode adicionar validação de campo passando um objeto de validação como o segundo argumento para o register
:
<input type="text" ref={register({ required: true })} />
O React Hook Form vem com uma série de validações pré-definidas que você pode usar, como required
, min
, max
, pattern
, entre outras. Você também pode criar suas próprias regras de validação personalizadas.
Para processar o formulário quando ele é enviado, basta adicionar um atributo onSubmit
ao elemento form
e passar a função handleSubmit
como o valor. Por exemplo:
<form onSubmit={handleSubmit(onSubmit)}>
A função `onSubmit` é a função que será chamada quando o formulário for enviado. Ela receberá os dados do formulário como argumento. Por exemplo, aqui está como você poderia processar os dados do formulário e enviá-los para uma API:
const onSubmit = data => { axios.post('/api/form', data) .then(response => console.log(response)) .catch(error => console.log(error)) }
Para exibir quaisquer erros de validação, você pode usar o objeto errors
retornado pelo hook useForm
. Por exemplo, aqui está como você poderia exibir um erro de validação para um campo de nome:
{errors.name && <p>Este campo é obrigatório</p>}
Você também pode personalizar as mensagens de erro e adicionar regras de validação personalizadas usando a API de validação avançada do React Hook Form. Consulte a documentação para obter mais informações.
Aqui está um exemplo completo de um formulário usando o React Hook Form:
import React from 'react';
import { useForm } from 'react-hook-form';
const MyForm = () => {
const { register, handleSubmit, errors } = useForm();
const onSubmit = data => console.log(data);
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input type="text" name="name" ref={register({ required: true })} />
{errors.name && <p>Este campo é obrigatório</p>}
<input type="email" name="email" ref={register({ required: true })} />
{errors.email && <p>Este campo é obrigatório</p>}
<input type="password" name="password" ref={register({ required: true })} />
{errors.password && <p>Este campo é obrigatório</p>}
<input type="submit" />
</form>
)
}
O React Hook Form também oferece outras funcionalidades úteis, como o gerenciamento de estado de formulário, o gerenciamento de erros de formulário e o gerenciamento de campos desabilitados. Consulte a documentação para obter mais informações sobre essas funcionalidades.
O React Hook Form é uma biblioteca fácil de usar para gerenciamento de formulários em aplicações React. Ele oferece uma série de funcionalidades úteis, com uma pequena pegada de memória e é simples de implementar. Ao usar o React Hook Form em seus projetos, você pode economizar tempo e esforço na criação e validação de formulários, deixando você livre para se concentrar em outras áreas da sua aplicação.
Além disso, ele é compatível com formulários de multi-etapas e formulários aninhados, permitindo que você crie formulários complexos com facilidade. Ele também é compatível com o React Router, o que significa que você pode usá-lo em rotas diferentes sem problemas.
Com o tempo, você verá como o React Hook Form pode tornar o gerenciamento de formulários em suas aplicações React muito mais fácil e eficiente.