Ações de formulário: substituindo rotas de API para mutações
Vincule diretamente as Ações do servidor às ações de formulários HTML para realizar mutações de formulário sem código repetitivo e com revalidação completa.
Ações de formulário: substituindo rotas de API para mutações é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.
O padrão tradicional
Em aplicações tradicionais do Next.js, os envios de formulário exigem um componente do cliente com um manipulador onSubmit que chama uma função de busca para enviar dados via POST a uma rota de API. Esse padrão funciona, mas exige escrever e manter separadamente tanto a lógica de busca no cliente quanto o manipulador da rota no servidor.
As Ações do servidor simplificam os formulários
Com as Ações do servidor, você substitui a chamada de busca e a rota da API por uma única função. O elemento de formulário recebe a Ação do servidor como sua propriedade action: <form action={serverAction}>. O React intercepta o envio e chama a ação automaticamente com os dados do formulário.
Acessando campos do formulário com FormData
A Ação do servidor recebe automaticamente um objeto FormData como argumento quando é acionada por um formulário. Você acessa campos individuais usando formData.get('email'), que retorna o valor como uma string. Todos os métodos padrão de FormData estão disponíveis, incluindo getAll() para campos de seleção múltipla.
Retornando resultados das ações
Uma Ação do servidor pode retornar um valor serializável que o cliente pode usar. Retornar um objeto de erro como { error: 'Email already exists' } ou um indicador de sucesso como { success: true } permite que o cliente atualize a interface adequadamente sem recarregar a página inteira.
Os componentes da página permanecem simples
Como a ação do formulário é uma Ação do servidor, o componente da página que hospeda o formulário não precisa ser um componente do cliente. O servidor renderiza o formulário como HTML estático, e somente as partes interativas, como a exibição de erros, exigem JavaScript no cliente. Isso reduz significativamente o pacote do cliente.
Aprimoramento progressivo integrado
Um formulário com action={serverAction} funciona sem o JavaScript habilitado. O navegador realiza um POST de formulário HTML padrão, o servidor executa a ação e retorna a página atualizada. Esse verdadeiro aprimoramento progressivo permite que o formulário funcione adequadamente em todos os ambientes.
Revalidando dados após uma mutação
Depois que uma Ação do servidor altera os dados, os dados da página armazenados em cache precisam ser atualizados. Chamar revalidatePath('/dashboard') dentro da ação invalida o cache do Next.js para esse caminho, fazendo com que a próxima solicitação busque dados atualizados. Essa é a maneira padrão de manter atualizadas as páginas renderizadas no servidor após mutações.
Invalidação granular do cache
revalidateTag('user-data') oferece uma invalidação de cache mais específica do que revalidatePath. Você marca as chamadas de busca com next: { tags: ['user-data'] } e depois invalida de uma só vez todos os dados marcados dentro da Ação do servidor, independentemente dos caminhos que exibem esses dados.
Redirecionando após uma ação
As Ações do servidor podem redirecionar o usuário para uma nova página após uma mutação bem-sucedida, chamando redirect('/success') a partir do módulo next/navigation. Esse redirecionamento é tratado no servidor, o que significa que o navegador recebe uma resposta de navegação adequada em vez de um redirecionamento no cliente.
Mutações fora de formulários com startTransition
As Ações do servidor não se limitam a envios de formulário. Para cliques em botões e outros acionamentos que não sejam de formulários, envolva a chamada da ação em startTransition(() => action(arg)). Isso marca a navegação como uma transição, permitindo que o React mantenha a interface atual visível enquanto a ação é executada no servidor.
Validação dentro das ações
As Ações do servidor são o local adequado para a validação no servidor. Valide os campos de FormData, retorne erros de validação se eles falharem e só prossiga com a mutação se todos os campos forem válidos. Bibliotecas como Zod se integram bem nesse ponto: analise o FormData em um esquema tipado e retorne o mapa de erros em caso de falha.
Questão sobre FormData
O que uma Ação do servidor recebe como argumento quando é acionada pelo envio de um formulário?
Recapitulação da lição
As Ações do servidor substituem o padrão de mutação com chamada de busca e rota de API. A propriedade action do formulário aceita diretamente uma Ação do servidor, que recebe um objeto FormData. As ações retornam resultados serializáveis para atualizações da interface do cliente, oferecem revalidatePath e revalidateTag para invalidação do cache e funcionam progressivamente sem JavaScript.
Perguntas Frequentes
A aula “Ações de formulário: substituindo rotas de API para mutações” é grátis?
Sim — o texto completo de “Ações de formulário: substituindo rotas de API para mutações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.
O que vou aprender em “Ações de formulário: substituindo rotas de API para mutações”?
Vincule diretamente as Ações do servidor às ações de formulários HTML para realizar mutações de formulário sem código repetitivo e com revalidação completa. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar React Academy?
Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Ações de formulário: substituindo rotas de API para mutações”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de React Academy?
Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Ações do servidor no React 19 e no Next.js
- Ações de formulário: substituindo rotas de API para mutações
- useActionState e useFormStatus
- Aprimoramento progressivo com Ações do servidor