Formulários com Estado Controlado no React: Um Guia Completo

Aprenda a gerenciar formulários no React usando estado controlado para melhorar a experiência do usuário.

Criando Formulários com Estado Controlado no React

Formulários são uma parte essencial de muitas aplicações web. Neste tutorial, vamos explorar como construir formulários com estado controlado no React, uma técnica que permite que você tenha um maior controle sobre os dados de entrada do usuário.

O Que é Estado Controlado?

No React, um formulário é considerado "controlado" quando o valor dos inputs é determinado pelo estado do componente. Isso significa que o React é responsável por manter o valor do input atualizado. Para isso, usamos o hook useState para criar um estado que será vinculado ao valor do input.

Exemplo Básico de Formulário Controlado

import React, { useState } from 'react';

function Formulario() {
    const [nome, setNome] = useState('');

    const handleChange = (event) => {
        setNome(event.target.value);
    };

    return (
        <div>
            <label>
                Nome:
                <input type="text" value={nome} onChange={handleChange} />
            </label>
            <p>Olá, {nome}!</p>
        </div>
    );
}

export default Formulario;

Neste exemplo, temos um formulário simples que captura o nome do usuário. O valor do input é controlado pelo estado nome, que é atualizado sempre que o usuário digita algo. O parágrafo abaixo do input exibe uma mensagem personalizada, utilizando o valor atual do estado.

Gerenciando Múltiplos Inputs

Gerenciar múltiplos inputs é uma tarefa comum em formulários. Para isso, podemos usar um único estado que armazena todos os valores em um objeto:

import React, { useState } from 'react';

function Formulario() {
    const [formData, setFormData] = useState({ nome: '', email: '' });

    const handleChange = (event) => {
        const { name, value } = event.target;
        setFormData({ ...formData, [name]: value });
    };

    return (
        <div>
            <label>
                Nome:
                <input type="text" name="nome" value={formData.nome} onChange={handleChange} />
            </label>
            <label>
                Email:
                <input type="email" name="email" value={formData.email} onChange={handleChange} />
            </label>
            <p>Olá, {formData.nome}! Seu email é {formData.email}.</p>
        </div>
    );
}

export default Formulario;

Aqui, o estado formData é um objeto que armazena tanto o nome quanto o email. O handleChange é uma função genérica que atualiza o estado com base no nome do input que foi alterado.

Validação de Formulário

Validações são importantes para garantir que os dados inseridos pelo usuário estejam corretos. Podemos incorporar uma validação simples no nosso exemplo:

const handleSubmit = (event) => {
    event.preventDefault();
    if (!formData.nome || !formData.email) {
        alert('Por favor, preencha todos os campos.');
        return;
    }
    // Processar os dados do formulário
};

No exemplo acima, verificamos se os campos nome e email estão preenchidos antes de processar os dados. Caso contrário, exibimos um alerta ao usuário.

Enviando Dados do Formulário

Para enviar os dados do formulário, geralmente utilizamos uma requisição HTTP. Aqui está como você pode fazer isso usando fetch:

const handleSubmit = (event) => {
    event.preventDefault();
    fetch('/api/submit', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(formData),
    })
    .then(response => response.json())
    .then(data => console.log(data));
};

Neste exemplo, os dados do formulário são enviados para um endpoint /api/submit usando fetch. A resposta é então convertida para JSON e exibida no console.

Conclusão

Criar formulários com estado controlado no React é uma habilidade fundamental para qualquer desenvolvedor front-end. Com as técnicas abordadas neste tutorial, você pode gerenciar a entrada do usuário de forma eficaz e garantir uma ótima experiência ao usuário. Explore mais sobre os hooks do React e continue aprimorando suas habilidades!

Os formulários são uma parte essencial da interação do usuário em aplicações web. Com o aumento da complexidade das aplicações, é crucial entender como gerenciar o estado dos formulários de maneira eficiente. O React oferece um modelo poderoso para lidar com formulários, permitindo que você crie interfaces responsivas e dinâmicas. Este tutorial aborda desde os conceitos básicos até técnicas avançadas, utilizando exemplos práticos que ajudam a solidificar o conhecimento. Ao dominar o estado controlado, você estará mais preparado para construir aplicações robustas e escaláveis.

Algumas aplicações:

  • Captura de dados do usuário
  • Autenticação e registro
  • Feedback e comentários
  • Formulários de contato
  • Pesquisa e questionários

Dicas para quem está começando

  • Comece com exemplos simples antes de avançar para formulários mais complexos.
  • Use ferramentas de validação para evitar erros comuns.
  • Experimente diferentes estilos para melhorar a usabilidade.
  • Estude sobre acessibilidade em formulários.
  • Pratique criando diferentes tipos de formulários para ganhar experiência.

Contribuições de Gabriel Nogueira

Compartilhe este tutorial: Como criar um formulário com estado controlado no React?

Compartilhe este tutorial

Continue aprendendo:

Como gerenciar o estado de múltiplos inputs em um formulário React?

Aprenda a controlar o estado de múltiplos inputs em um formulário React de maneira simples e eficaz.

Tutorial anterior

Como lidar com formulários complexos e múltiplos campos no estado?

Aprenda a gerenciar formulários complexos com múltiplos campos usando React.

Próximo tutorial