0Pricing
React Academy · Aula

Animações de entrada e saída sem biblioteca

Implemente animações de montagem e desmontagem controlando manualmente o tempo de exibição e da opacidade no React.

Animações de entrada e saída sem biblioteca é uma aula grátis de React Academy no CoddyKit. Esta é a aula 4 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 problema da desmontagem

Quando você renderiza condicionalmente com {show && }, o React remove o elemento do DOM no instante em que show se torna falso. Não há tempo para uma animação de saída, pois o nó já desapareceu.

Animações de entrada são fáceis; as de saída são o verdadeiro desafio.

Solução 1: mantê-lo montado

A correção mais simples é nunca desmontar o elemento. Mantenha-o renderizado e anime a opacity até zero, além de aplicar pointer-events: none quando estiver oculto, e faça o caminho inverso quando ele for exibido.

Isso proporciona desaparecimentos graduais suaves nas duas direções, ao custo de manter o elemento no DOM.

Solução 2: uma máquina de estados de montagem

Para desmontar de verdade, modele uma pequena máquina de estados com fases como mounting, mounted, unmounting e unmounted. Remova o nó somente depois que a animação de saída terminar.

O estado determina quais classes de animação são aplicadas em cada fase.

Um gancho useMount

Você pode encapsular a máquina em um gancho personalizado, geralmente chamado de useMount. Ele recebe a visibilidade desejada e retorna se o elemento deve estar no DOM, além de sua fase atual.

Os componentes permanecem limpos porque a lógica de temporização fica no gancho reutilizável.

Pares de classes de entrada e saída

Seguindo convenções comuns, aplique enter e depois enter-active durante a montagem, e exit e depois exit-active durante a remoção. A classe básica define o estado inicial, enquanto a classe ativa define o estado final com uma transição.

Alternar entre as duas no quadro correto produz a animação.

Acompanhando o fim da transição

Para saber quando uma animação de saída termina, acompanhe o evento transitionend no elemento. Quando ele for disparado para a saída, altere o estado para unmounted e remova o nó.

Isso vincula a desmontagem precisamente ao fim da animação visual, em vez de usar um tempo limite estimado.

Um componente de transição reutilizável

Você pode envolver tudo isso em um componente Transition que aceita uma propriedade in e elementos filhos. Ele mantém os filhos montados durante a animação de saída e aplica as classes corretas em cada fase.

Quem utiliza o componente só precisa alternar in para obter movimentos corretos de entrada e saída sem esforço.

Acionando corretamente a classe ativa

Um detalhe sutil: você precisa deixar o navegador desenhar a classe inicial antes de adicionar a classe ativa; caso contrário, o elemento salta sem transição. Um requestAnimationFrame ou um refluxo forçado entre as duas garante que a transição realmente seja executada.

Isso garante que o navegador registre primeiro os valores iniciais.

Comparando com react-transition-group

A biblioteca react-transition-group fornece os componentes Transition e CSSTransition, que implementam exatamente esse padrão, incluindo o ciclo de vida das classes e o momento da desmontagem.

Sua versão DIY reproduz as ideias centrais da biblioteca, o que facilita entendê-la depois que você mesmo constrói uma versão.

Quando usar uma biblioteca em vez de DIY

Para um único desaparecimento gradual simples, a abordagem de manter o elemento montado ou um pequeno gancho é suficiente e evita uma dependência. Para muitas transições coordenadas, listas com adições e remoções ou sequenciamentos complexos, uma biblioteca economiza tempo e evita erros em casos extremos.

Escolha de acordo com a complexidade de animação de que seu aplicativo realmente precisa.

Juntando tudo

Animações de saída exigem manter o elemento ativo até que a animação seja concluída, seja nunca o desmontando, seja usando uma máquina de estados com transitionend ou uma biblioteca.

Entender esses mecanismos permite escolher a abordagem mais simples que atenda às suas necessidades.

Verificação rápida

Teste sua compreensão sobre animações de saída.

Recapitulação

Você aprendeu por que as animações de saída são difíceis, duas soluções — manter o elemento montado e usar uma máquina de estados de montagem —, como transitionend determina o momento da desmontagem e como criar um componente Transition reutilizável.

Você também viu quando recorrer a react-transition-group em vez de DIY.

Perguntas Frequentes

A aula “Animações de entrada e saída sem biblioteca” é grátis?

Sim — o texto completo de “Animações de entrada e saída sem biblioteca” é 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 “Animações de entrada e saída sem biblioteca”?

Implemente animações de montagem e desmontagem controlando manualmente o tempo de exibição e da opacidade no React. 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 4 de 4.

Quanto tempo leva a aula “Animações de entrada e saída sem biblioteca”?

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

  1. Transições CSS com Alterações de Estado do React
  2. Animações de @keyframes CSS com React
  3. useLayoutEffect para medições antes da animação
  4. Animações de entrada e saída sem biblioteca
← Voltar para React Academy