React Academy · Leçon

Animations d’entrée et de sortie sans bibliothèque

Implémentez des animations de montage et de démontage en contrôlant manuellement le moment d’affichage et d’opacité dans React.

Leçon 4 sur 413 étapes

Animations d’entrée et de sortie sans bibliothèque est une leçon React Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage React Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours React Academy comprend 4 leçons au total.

Le problème du démontage

Lorsque vous effectuez un rendu conditionnel avec {show && }, React retire l'élément du DOM dès que show devient faux. Il n'y a pas le temps de jouer une animation de sortie, car le nœud a déjà disparu.

Les animations d'entrée sont faciles ; les animations de sortie constituent le véritable défi.

Solution 1 : le conserver monté

La solution la plus simple consiste à ne jamais démonter l'élément. Conservez-le dans le rendu et animez opacity jusqu'à zéro, en ajoutant pointer-events: none lorsqu'il est masqué, puis ramenez-la à un lorsqu'il est affiché.

Vous obtenez ainsi des fondus fluides dans les deux directions, au prix du maintien de l'élément dans le DOM.

Solution 2 : une machine à états de montage

Pour effectuer un véritable démontage, modélisez une petite machine à états avec des phases telles que mounting, mounted, unmounting et unmounted. Vous ne retirez le nœud qu'une fois l'animation de sortie terminée.

L'état détermine quelles classes d'animation s'appliquent à chaque phase.

Un crochet useMount

Vous pouvez encapsuler la machine dans un crochet personnalisé, souvent appelé useMount. Il reçoit la visibilité souhaitée et indique si l'élément doit se trouver dans le DOM, ainsi que sa phase actuelle.

Les composants restent clairs, car la logique de synchronisation se trouve dans le crochet réutilisable.

Paires de classes d'entrée et de sortie

En reprenant les conventions courantes, vous appliquez enter puis enter-active lors du montage, et exit puis exit-active lors du retrait. La classe de base définit l'état initial et la classe active définit l'état final avec une transition.

Passer de l'une à l'autre à la bonne image produit l'animation.

Écouter la fin de la transition

Pour savoir quand une animation de sortie se termine, écoutez l'événement transitionend sur l'élément. Lorsqu'il se déclenche pour la sortie, faites passer l'état à unmounted et retirez le nœud.

Cela lie précisément le démontage à la fin de l'animation visuelle plutôt qu'à un délai approximatif.

Un composant de transition réutilisable

Vous pouvez regrouper tout cela dans un composant Transition qui accepte une propriété in et des enfants. Il conserve les enfants montés pendant leur animation de sortie et applique les classes appropriées à chaque phase.

Les utilisateurs n'ont plus qu'à basculer in pour obtenir gratuitement des animations d'entrée et de sortie correctes.

Déclencher correctement la classe active

Un détail subtil : vous devez laisser le navigateur effectuer le rendu de la classe initiale avant d'ajouter la classe active ; sinon, l'élément saute sans transition. Un requestAnimationFrame ou un recalcul forcé de la mise en page entre les deux garantit que la transition s'exécute réellement.

Cela garantit que le navigateur enregistre d'abord les valeurs initiales.

Comparaison avec react-transition-group

La bibliothèque react-transition-group fournit les composants Transition et CSSTransition, qui implémentent exactement ce modèle, notamment le cycle de vie des classes et le moment du démontage.

Votre version DIY reprend ses idées essentielles, ce qui rend la bibliothèque facile à comprendre une fois que vous en avez créé une vous-même.

Quand utiliser une bibliothèque plutôt que DIY

Pour un simple fondu, l'approche qui conserve l'élément monté ou un petit crochet suffit largement et évite une dépendance. Pour de nombreuses transitions coordonnées, des listes avec ajout et suppression, ou une séquence complexe, une bibliothèque fait gagner du temps et évite les bugs liés aux cas limites.

Choisissez en fonction de la complexité d'animation dont votre application a réellement besoin.

Assembler le tout

Les animations de sortie exigent de conserver l'élément jusqu'à la fin de son animation, que ce soit en ne le démontant jamais, avec une machine à états associée à transitionend, ou au moyen d'une bibliothèque.

Comprendre les mécanismes vous permet de choisir l'approche la plus légère qui répond à vos besoins.

Vérification rapide

Évaluez votre compréhension des animations de sortie.

Récapitulatif

Vous avez appris pourquoi les animations de sortie sont difficiles, deux solutions — conserver l'élément monté et utiliser une machine à états de montage —, comment transitionend synchronise le démontage, et comment créer un composant Transition réutilisable.

Vous avez également vu quand choisir react-transition-group plutôt que DIY.

Gratuit pour commencer

Apprends React avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
88
Leçons
324

Questions Fréquemment Posées

La leçon « Animations d’entrée et de sortie sans bibliothèque » est-elle gratuite ?

Oui — le texte complet de « Animations d’entrée et de sortie sans bibliothèque » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours React Academy, passe à CoddyKit PRO. Le cours React Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Animations d’entrée et de sortie sans bibliothèque » ?

Implémentez des animations de montage et de démontage en contrôlant manuellement le moment d’affichage et d’opacité dans React. Tu pratiques React Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer React Academy ?

Aucune expérience préalable n'est requise. React Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Animations d’entrée et de sortie sans bibliothèque » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon React Academy ?

Oui. Chaque leçon React Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Transitions CSS avec les changements d’état de React
  2. Animations CSS avec @keyframes dans React
  3. useLayoutEffect pour les mesures avant animation
  4. Animations d’entrée et de sortie sans bibliothèque
← Retour à React Academy