Pular para o conteúdo
React

Como usar useTransition no React para evitar

Esqueça o velho setIsLoading(true). Descubra como o hook useTransition pode simplificar a sua lógica de carregamento em aplicações React modernas.

Por que isso é importante

Como usar useTransition no React para evitar. Esqueça o velho setIsLoading(true). Descubra como o hook useTransition pode simplificar a sua lógica de carregamento em aplicações React modernas.

O clássico método com isLoading

Se você já desenvolveu interfaces com React, é muito provável que tenha criado uma
variável de estado do tipo isLoading para controlar o momento entre o
início da requisição e a chegada da resposta. O padrão é: definir o loading como true,
mostrar um spinner, aguardar a resposta e então trocar para false.

Embora funcione, esse padrão exige mais código, reduz clareza e está sujeito a erros se
esquecermos de resetar o estado corretamente.

Atenção

Depender exclusivamente de estados manuais para controlar carregamentos pode causar
inconsistências difíceis de depurar, além de tornar o código mais verboso.

O que é o hook useTransition?

useTransition é um hook do React que permite diferenciar atualizações de
alta prioridade (interações diretas) de atualizações mais lentas (como carregamentos de
dados). Ele retorna dois elementos:

  1. 1. isPending: um booleano que indica se a transição está em
    andamento.
  2. 2. startTransition: função que encapsula a lógica assíncrona e
    inicia a transição.

Info técnica

useTransition melhora a fluidez de interfaces ao manter o estado visual
anterior até que a nova interface esteja pronta para ser exibida.

Como aplicar na prática

Com o startTransition , podemos envolver qualquer função assíncrona e
monitorar o estado de carregamento através de isPending . Isso elimina a
necessidade de gerenciar setIsLoading manualmente.

  1. Passo 1: Importe o hook useTransition do React.
  2. Passo 2: Use startTransition para encapsular sua
    requisição assíncrona.
  3. Passo 3: Utilize o isPending para condicionar o
    seu spinner ou mensagem de loading.

Dica útil

Ao usar isPending você garante que o status loading será sempre coerente
com a operação em andamento, evitando race conditions.

Comparando as abordagens

Estado manual com isLoading

Controle tradicional com useState e vários setIsLoading.

+ Prós

  • • Solução conhecida
  • • Controle total sobre lógica

− Contras

  • • Código boilerplate
  • • Erro comum ao esquecer de trocar loading

useTransition

Hook moderno do React para atualizações concorrentes

+ Prós

  • • Menos código
  • • Redução de bugs
  • • Código mais legível

− Contras

  • • Pode exigir adaptação inicial
  • • Necessita entender concorrência no React

Dicas extras de ferramentas

React DevTools

Inspecione o comportamento dos hooks como useTransition em tempo real

TanStack Query

Gerenciamento assíncrono com controle de loading embutido

Checklist de Implementação

  • Removido o estado isLoading manual
  • Encapsulou a lógica no startTransition
  • Usou isPending para renderizar o spinner
  • Reduziu linhas de código e aumentou clareza

Perguntas frequentes

O que é o hook useTransition?

useTransition é um hook do React que permite diferenciar atualizações de alta prioridade (interações diretas) de atualizações mais lentas (como carregamentos de dados). Ele retorna dois elementos:

Como aplicar na prática

Com o startTransition , podemos envolver qualquer função assíncrona e monitorar o estado de carregamento através de isPending . Isso elimina a necessidade de gerenciar setIsLoading manualmente.