Olá Alexander! Tudo bem?
A dúvida sobre como tratar formulários no React é bastante comum, e é ótimo que você esteja buscando entender as melhores práticas. No React, existem algumas abordagens para lidar com formulários, e a escolha pode depender do que você precisa para o seu projeto.
Usando Hooks e onSubmit
: Essa é uma abordagem bastante comum e recomendada. Você utiliza o hook useState
para gerenciar o estado dos campos do formulário enquanto o usuário os preenche. Quando o formulário é submetido, você usa o evento onSubmit
para chamar uma função que trata os dados. Isso permite que você tenha controle total sobre o estado do formulário e possa validar ou manipular os dados antes de enviá-los.
Exemplo:
const [nome, setNome] = useState('');
function handleSubmit(event) {
event.preventDefault();
console.log('Nome:', nome);
}
return (
<form onSubmit={handleSubmit}>
<input
type="text"
value={nome}
onChange={(e) => setNome(e.target.value)}
/>
<button type="submit">Enviar</button>
</form>
);
Usando FormData
: Como visto no contexto da aula, você pode usar FormData
para capturar os dados do formulário quando ele é submetido. Essa abordagem é útil quando você deseja manipular os dados de forma mais direta, especialmente quando lida com arquivos ou dados complexos.
Exemplo:
function handleSubmit(event) {
event.preventDefault();
const formData = new FormData(event.target);
console.log('Nome:', formData.get('nome'));
}
return (
<form onSubmit={handleSubmit}>
<input name="nome" type="text" />
<button type="submit">Enviar</button>
</form>
);
Ambas as abordagens são válidas e têm seus usos dependendo do que você precisa. A primeira abordagem é mais comum quando você quer ter um controle mais granular sobre o estado dos inputs durante o preenchimento. Já a segunda é mais prática para capturar todos os dados de uma vez, especialmente em formulários mais complexos.
Espero ter ajudado. Conte com o apoio do fórum :)
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado