Categorias do Site

Guia prático do useActionState no React

Aprenda a usar o useActionState no React para simplificar a gestão de estados e ações assíncronas em formulários.

Ícone de átomo azul claro sobre um fundo texturizado com listras horizontais vermelhas e brancas desbotadas.

Gerenciar o estado de formulários no React pode ser complicado, entre acompanhar valores, lidar com envios assíncronos e erros. O useActionState é um Hook do React que simplifica essa tarefa, facilitando o gerenciamento de ações do usuário, como envios de formulários e mudanças de estado assíncronas. Ele oferece uma forma mais limpa e previsível de lidar com essas situações.

useActionState in React

O useActionState associa uma ação do usuário a um pedaço de estado, simplificando a atualização desse estado conforme a ação é executada. Aqui está um exemplo básico:

const [state, formAction, isPending] = useActionState(actionFn, initialState);

Benefícios principais do useActionState:

  • Reduz o código boilerplate: menos variáveis de estado separadas para carregamento, erros e valores submetidos.
  • Simplifica atualizações assíncronas: gerencia ações baseadas em promessas sem useEffect extra.
  • Melhora a performance: evita re-renderizações desnecessárias ao gerenciar estados de forma eficiente.

Exemplos práticos de useActionState

Aplicativo de contador

Um exemplo básico de uso do useActionState é em um aplicativo de contador. Ele oferece uma maneira limpa de lidar com atualizações assíncronas, como escrever em um servidor ou banco de dados.

"use client";

import { useActionState } from 'react';

async function increment(prevCount) {
  await new Promise(resolve => setTimeout(resolve, 1000));
  return prevCount + 1;
}

function CounterApp() {
  const [count, formAction, isPending] = useActionState(increment, 0);

  return (
    

Count: {count}

); } export default CounterApp;

No exemplo acima, o useActionState gerencia todo o processo de atualização de estado do contador, mantendo o componente simples mesmo ao lidar com operações assíncronas.

Envio de formulário

Para cenários mais complexos, como o envio de formulários com operações assíncronas e feedback para o usuário, o useActionState simplifica a gestão de estados e efeitos.

"use client";

import { useActionState } from "react";

// submit form action
async function submitForm(prevState, formData) {
  await new Promise((resolve) => setTimeout(resolve, 1500));
  const email = formData.get("email");
  if (!email || !email.includes("@")) {
    return { success: false, message: "Please enter a valid email address." };
  }
  return { success: true, message: "Form submitted successfully!" };
}

function FormApp() {
  const [state, formAction, isPending] = useActionState(submitForm, {
    success: null,
    message: "",
  });

  return (
    
{state.message && (

{state.message}

)}
); } export default FormApp;

Este exemplo mostra como o useActionState gerencia o envio de formulários de forma limpa e declarativa, sem variáveis de estado extras.

Conclusão

O useActionState simplifica a lógica de IU ao lidar com fluxos assíncronos, como envios de formulários ou interações com o servidor, acoplando atualizações de estado diretamente a ações do servidor. Experimente este Hook para tornar seu código mais limpo e fácil de manter.

Boa codificação!

  • Melhores Modelos de Logos para Gamers em 2025

    Explore mais de 40 modelos de logos para gamers e equipes de eSports, perfeitos para destacar sua marca no universo dos jogos.

    Explore mais de 40 modelos de logos para gamers e equipes de eSports, perfeitos para destacar sua marca no universo dos jogos.

    Ler notícia completa
    Logotipo da
  • Microfalhas no UX: O perigo invisível nos sites

    Entenda como microfalhas estão destruindo a experiência do usuário em seu site e afugentando visitantes.

    Entenda como microfalhas estão destruindo a experiência do usuário em seu site e afugentando visitantes.

    Ler notícia completa
    Laptop prateado com a tela fragmentando-se em pedaços de vidro, sugerindo um efeito tridimensional de quebra.
  • Workshop de IA em UX: Alcançando Mais com Menos

    Descubra como a IA pode otimizar o UX, reduzindo tarefas e aumentando a eficiência em um workshop prático e relevante.

    Descubra como a IA pode otimizar o UX, reduzindo tarefas e aumentando a eficiência em um workshop prático e relevante.

    Ler notícia completa
    Homem com fones e laptop e robô rosa grande ao fundo em ambiente com névoa. Ambos concentram-se intensamente em suas tarefas.
  • Como Criar Produtos de IA Eficazes para Usuários e Empresas

    A tecnologia revolucionou o mundo, desde o telefone de Bell em 1876 até o iPhone da Apple em 2007. Com a IA entrando no mainstream, empresas correm para adotá-la em seus produtos e ferramentas internas, impulsionando eficiência e produtividade. Ignorar essa tendência pode significar ficar para trás. Para designers, essa onda de adoção de IA […]

    Aprenda a projetar produtos de IA que equilibram usabilidade e governança, atendendo usuários e stakeholders empresariais.

    Ler notícia completa
    Ilustração de perfil de cabeça humana com metade mostrando cérebro humano e a outra metade com estrutura em malha conectada por pontos, em fundo degradê azul e verde.
  • Como o viés da IA mantêm o poder e prejudica a compreensão

    Introdução As salvaguardas da IA foram introduzidas sob o pretexto de segurança e neutralidade. No entanto, na prática, criam uma inversão dos padrões éticos de comunicação: negam validação a quem não tem reconhecimento institucional, enquanto elogiam sem crítica aqueles que já o possuem. Isso não é alinhamento, mas um reflexo do poder algorítmico. O artigo […]

    Análise crítica sobre como as salvaguardas da IA reforçam hierarquias e distorcem a percepção dos usuários.

    Ler notícia completa
    Imagem abstrata de blocos sobrepostos em tons de preto, cinza e coral, com texto sobre IA na parte inferior.
  • Next.js 15.4: Novidades e Expectativas

    Next.js 15.4 chegou, marcando um marco importante para o framework e seu crescente ecossistema. Esta versão é particularmente significativa para desenvolvedores que acompanham de perto a evolução do Turbopack. O Turbopack, anteriormente considerado não pronto para produção, agora passa em todos os 8.302 testes de integração para builds de produção. Isso marca um avanço significativo, […]

    Descubra as novidades do Next.js 15.4, incluindo melhorias no Turbopack e o que esperar para o futuro do framework.

    Ler notícia completa
    Texto alternativo: Logotipo preto com a letra
  • Escalando UX: Modelo de Excelência de Oxford

    Todos queremos melhorar a experiência do usuário. Mas o que fazer quando não é possível montar uma equipe completa de UX? Este foi o desafio enfrentado pela Universidade de Oxford. Em uma recente sessão com Sarah Zama, chefe de UX em Oxford, compartilhamos a jornada de como resolvemos esse problema criando um Centro de Excelência […]

    Descubra como Oxford escalou UX sem aumentar a equipe, utilizando um Centro de Excelência inovador.

    Ler notícia completa
    Três jovens, dois andando e um em cadeira de rodas, usam smartphones próximo a um prédio gótico imponente, sob um céu claro.
  • 40+ Templates Grátis de UI para Figma

    Projetar uma interface de usuário é uma tarefa complexa que requer consideração cuidadosa de elementos como layout, tipografia, cor e usabilidade. No entanto, com as ferramentas certas, o processo se torna muito mais gerenciável. Figma é uma popular ferramenta de prototipagem para designers, conhecida por suas funcionalidades amigáveis que facilitam a criação de interfaces bonitas. […]

    Acelere seu design com mais de 40 templates de UI gratuitos para Figma. Ideal para projetos web e mobile.

    Ler notícia completa
    Interface de usuário com elementos de design, incluindo ícones, paletas de cores e tipografias, distribuídos de forma organizada ao redor de um ícone central colorido.
  • Debugando mais rápido no Chrome DevTools Console

    Desenvolvedores iniciantes em JavaScript e desenvolvimento web geralmente começam a depurar usando o método console.log(). Outros métodos populares incluem console.error() e console.table(). Como a maioria dos desenvolvedores profissionais, usei a abordagem de depuração tradicional por vários anos antes de desejar uma abordagem mais produtiva. Ao experimentar recursos do console do Chrome DevTools, encontrei funcionalidades que […]

    Descubra como usar recursos menos conhecidos do Chrome DevTools Console para aumentar a produtividade no debug.

    Ler notícia completa
    Ícones de tecnologia com um quadrado azul contendo espirais geométricas e um círculo amarelo com as letras