quarta-feira, novembro 27, 2024
Home Programação Formulário React JS

Formulário React JS

Crie formulários interativos e elegantes com facilidade

Formulários utilizando a biblioteca React são muito importantes o seu entendimento, pois quanto mais campos para se controlar maiores serão as chances de se perder durante a lógica.

Abaixo segue um pontapé inicial de como utilizar um formulário no React e também fazer uma validação mínima para trazer ainda mais confiabilidade para seus dados.

import React, { useState } from "react";

const LoginForm = () => {
  const [values, setValues] = useState({
    email: "",
    password: "",
  });

  const [errors, setErrors] = useState({
    email: "",
    password: "",
  });

  const handleChange = (e) => {
    setValues({ ...values, [e.target.name]: e.target.value });
  };

  const validateForm = () => {
    const newErrors = {};
    if (!values.email) {
      newErrors.email = "Email é obrigatório";
    } else if (!/\S+@\S+\.\S+/.test(values.email)) {
      newErrors.email = "Email inválido";
    }

    if (!values.password) {
      newErrors.password = "Senha é obrigatória";
    }

    return newErrors;
  };

  const handleSubmit = (e) => {
    e.preventDefault();
    const validationErrors = validateForm();
    setErrors(validationErrors);
    if (Object.keys(validationErrors).length === 0) {
      // Enviar formulário aqui
    }
  };

  return (
    <form onSubmit={handleSubmit}>
      <div>
        <label htmlFor="email">Email</label>
        <input
          type="email"
          id="email"
          name="email"
          value={values.email}
          onChange={handleChange}
        />
        {errors.email && <p>{errors.email}</p>}
      </div>
      <div>
        <label htmlFor="password">Senha</label>
        <input
          type="password"
          id="password"
          name="password"
          value={values.password}
          onChange={handleChange}
        />
        {errors.password && <p>{errors.password}</p>}
      </div>
      <button type="submit">Enviar</button>
    </form>
  );
};

export default LoginForm;

Entendimento do código

Neste exemplo, usamos useState para gerenciar o estado dos inputs do formulário e dos erros de validação. A função handleChange é usada para atualizar o estado dos valores dos inputs sempre que o usuário digita algo. A função validateForm é usada para validar os inputs antes de enviar o formulário. Se houver erros, eles serão armazenados no estado errors usando setErrors. Por fim, a função handleSubmit é usada para gerenciar o envio.

Validação de e-mail

O regex utilizado na validação de e-mail (/\S+@\S+\.\S+/) é uma expressão regular que verifica se o valor inserido é uma string válida de endereço de e-mail.

Aqui está uma explicação detalhada do regex:

/
\S+   - Um ou mais caracteres que não são espaços em branco
@     - O caractere @
\S+   - Um ou mais caracteres que não são espaços em branco
\.    - O caractere ponto (.)
\S+   - Um ou mais caracteres que não são espaços em branco
/

O objetivo desta expressão regular é garantir que o valor inserido tenha pelo menos um caractere antes e depois do @, além de pelo menos um caractere antes e depois do ponto, para que seja considerado um endereço de e-mail válido.

Explicando nos mínimos detalhes…

A função handleSubmit é uma função do React que é chamada quando o formulário é enviado. Aqui está uma explicação detalhada do que esta função faz:

  1. e.preventDefault(): Esta linha impede que o comportamento padrão de submit de formulários seja executado. Isso é feito para que você possa controlar o que acontece quando o formulário é enviado.
  2. const validationErrors = validateForm(): Aqui, chamamos a função validateForm para validar os inputs do formulário. Se houver erros de validação, eles serão retornados como um objeto, caso contrário, será retornado um objeto vazio.
  3. setErrors(validationErrors): Aqui, usamos a função setErrors para armazenar os erros de validação no estado errors.
  4. if (Object.keys(validationErrors).length === 0): Aqui, verificamos se o objeto de erros de validação está vazio. Se estiver vazio, significa que não houve erros de validação e podemos continuar com o envio do formulário.
  5. // Enviar formulário aqui: Aqui, você pode adicionar a lógica para enviar o formulário. Por exemplo, você pode enviar os dados para uma API usando uma biblioteca como Axios ou Fetch.

A função handleSubmit é uma função importante no gerenciamento de formulários com React, pois permite que você faça a validação dos inputs antes do envio e tome as medidas necessárias (como exibir erros) antes de enviar o formulário.

Em resumo…

Este foi apenas um exemplo simplificado de um formulário com validação feito com a biblioteca React JS que pode ser facilmente utilizada em seus projetos, ou apenas como objeto de estudo.

DEIXE UMA RESPOSTA

Por favor entre com seu comentário
Por favor insira o seu nome aqui

Últimos artigos

Entenda o que é refatoração de código

Porque a refatoração de código é tão importante na programação Melhora a qualidade do código: A refatoração ajuda a melhorar a qualidade do código,...

O que são Padrões de Projeto de Software

O que são Padrões de Projeto de Software Design patterns, ou padrões de projeto de software, são soluções comprovadas e testadas para problemas comuns que...

Winston NodeJS Logger

O que são logs de uma aplicação? Basicamente são registros detalhados e estruturados dos eventos ocorridos em sua execução. Eles incluem informações sobre erros, operações...

Vantagens e Desvantagens no uso da API Date e Intl

Antes de mais nada, qual a importância de saber manipular datas na programação É importante saber manipular os objetos Date e Intl em JavaScript porque...

Entendendo biblioteca de requisições HTTP Axios

Primeiramente o que é AXIOS e sua finalidade Axios é uma biblioteca JavaScript que facilita a realização de requisições HTTP (como GET, POST, PUT, DELETE,...