Utilizamos cookies para ajudá-lo a navegar com eficiência e executar determinadas funções. Você encontrará informações detalhadas sobre todos os cookies em cada categoria de consentimento abaixo.
Os cookies categorizados como “Necessários” são armazenados no seu navegador, pois são essenciais para ativar as funcionalidades básicas do site.
Também utilizamos cookies de terceiros que nos ajudam a analisar como você usa este site, armazenam suas preferências e fornecem conteúdo e anúncios que são relevantes para você. Estes cookies só serão armazenados no seu navegador com o seu consentimento prévio.
Você pode optar por ativar ou desativar alguns ou todos esses cookies, mas a desativação de alguns deles pode afetar sua experiência de navegação.
Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.
Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.
Performance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Advertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.
[vc_row][vc_column][vc_column_text]É inegável o avanço exponencial das tecnologias, sobretudo nas aplicações web e mobile, que fazem parte do dia a dia de grande parte da humanidade, seja para entretenimento, estudo, trabalho ou outras finalidades. Consequentemente, o fluxo de dados tem acompanhado esse crescimento e varia em diferentes formatos, o que pode acabar confundindo os usuários, além de dificultar o trabalho para os desenvolvedores. Nesse contexto, realizar a validação de formulário pode trazer inúmeros benefícios de usabilidade para tornar mais agradável a experiência do usuário, mostrando feedbacks positivos ou negativos e orientações a respeito dos valores inseridos, por exemplo.
[adrotate banner=”4″]
Pensando nisso, neste artigo, vamos aprender como fazer a validação de formulário com React Hook Form e Yup.
Trabalhando com aplicações React, podemos encontrar inúmeras soluções para validação de formulários. Bem como, React Hook Form e Yup, que são soluções bastante performáticas e de simples integração para os desenvolvedores.
React Hook Form é uma biblioteca usada para validação de formulário em aplicações React, sem nenhuma outra dependência. Assim, além de ser eficiente e fácil de usar, ela permite que os desenvolvedores escrevam poucas linhas em sua implementação comparada a outras bibliotecas com a mesma finalidade.
Nesse sentido, criando validação de formulário simples, o React Hook Form, alinhado com os existentes dentro do próprio HTML, suporta as validações: required, min, max, maxlength, minlength, pattern, validate.
Yup é um construtor de esquema JavaScript para análise e validação de valor. Assim, com seu esquema de validação poderoso e simples de usar, o Yup possibilita uma maneira abstrata que não interfere no restante da lógica de negócio.
Dessa forma, é possível criar um objeto formatado que assemelha-se com o esquema pretendido para um objeto. E em seguida, utilizar as funções deste utilitário para verificar se nossos objetos de dados correspondem a esse esquema. Para, assim, validá-los.
Afinal, vale ressaltar que podemos trabalhar em validações de qualquer objeto na aplicação. Tal qual podem ser utilizados dados de formulários no Front-end ou até no Back-end, dentre outras utilidades.
React Hook Form e Yup trabalham muito bem juntas. Pensando nisso, criamos um passo a passo para fazer essa integração.
Primeiramente, é necessário adicionar as seguintes dependências em um projeto React:
Em seguida, suponhamos que esse é o nosso trecho de código:
Então, adicionamos a importação dos pacotes no topo do arquivo:
Neste momento, instanciamos o schema de validação usando yup:
Agora, devemos declarar um objeto que recebe os seguintes atributos:
Nesse projeto, estamos usando typescript. Por isso, precisamos adicionar a tipagem no useForm. Então, será possível facilmente identificar os atributos dentro o objeto data, retornado pela função handleSubmit. Bem como tipar o nome do input que será registrado usando register.
A interface:
Adicionando a tipagem no método useForm:
Neste momento, iremos adicionar os métodos handleSubmit no formulário e register nos inputs:
Observação: o método onSubmitHandler, que está sendo passado como parâmetro para função handleSubmit do React Hook Form e marcado como erro, ainda não foi criado, faremos isso no passo seguinte.
A intelliSense em funcionamento no método register após a adição da tipagem:
Então, iremos criar o método onSubmitHandler para receber e usar os dados do formulário:
A intelliSense em funcionamento no objeto com os dados do formulário:
Por último, adicionamos as mensagens de erro para cada input:
Dessa forma, com tudo pronto, o código fica assim:
Assim, ao rodar o aplicativo, ele deve funcionar assim:
Veja também:
Como utilizar animações Lottie com React
A validação de formulário facilita a aplicação de diversas funcionalidades do sistema. Bem como melhora a usabilidade e experiência do usuário. Então, neste artigo, aprendemos como fazemos a validação de formulário com React Hook Form e Yup.
Pensando nisso, acesse o nosso blog e confira diversas dicas sobre o mundo do desenvolvimento.
Lembrando que as referências utilizadas para a aplicação neste artigo foram: https://react-hook-form.com/ e https://github.com/jquense/yup.
[adrotate banner=”5″][/vc_column_text][/vc_column][/vc_row]
Autor