🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
React

Como usar useTransition no React para evitar isLoading

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

CrazyStack
12 min de leitura
ReactHooksuseTransition

Por que isso é importante

Controlar a experiência do usuário durante chamadas assíncronas é essencial para aplicações modernas. O uso do hook useTransition permite reagir a updates concorrentes com muito mais clareza e simplicidade, eliminando a necessidade de set-ters repetitivos e estado manual.

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

Saiba mais →

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

Domine React e Node com o CrazyStack

Aprenda técnicas avançadas de React com nosso curso completo