0Pricing
React Academy · Lektion

Ein- und Austrittsanimationen ohne Bibliothek

Implementieren Sie Mount- und Unmount-Animationen in React, indem Sie Anzeigedauer und Opazität manuell steuern.

Ein- und Austrittsanimationen ohne Bibliothek ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Das Problem beim Unmounten

Wenn Sie mit {show && } bedingt rendern, entfernt React das Element sofort aus dem DOM, sobald show den Wert false annimmt. Für eine Exit-Animation bleibt keine Zeit, da der Knoten bereits verschwunden ist.

Enter-Animationen sind einfach; Exit-Animationen stellen die eigentliche Herausforderung dar.

Lösung 1: Eingebunden lassen

Die einfachste Lösung besteht darin, das Element niemals zu unmounten. Lassen Sie es gerendert und animieren Sie bei ausgeblendetem Zustand opacity auf null sowie pointer-events: none; beim Einblenden setzen Sie opacity wieder auf eins.

So erhalten Sie in beide Richtungen sanfte Überblendungen, müssen dafür aber in Kauf nehmen, dass das Element im DOM bleibt.

Lösung 2: Eine Mounting-State-Machine

Für echtes Unmounten modellieren Sie eine kleine State-Machine mit Phasen wie mounting, mounted, unmounting und unmounted. Sie entfernen den Knoten erst, sobald die Exit-Animation abgeschlossen ist.

Der State bestimmt, welche Animationsklassen in jeder Phase angewendet werden.

Ein useMount-Hook

Sie können die State-Machine in einem benutzerdefinierten Hook kapseln, der häufig useMount genannt wird. Er erhält die gewünschte Sichtbarkeit und gibt zurück, ob das Element im DOM vorhanden sein soll, sowie seine aktuelle Phase.

Die Komponenten bleiben übersichtlich, weil die Timing-Logik im wiederverwendbaren Hook liegt.

Paare aus Enter- und Exit-Klassen

In Anlehnung an gängige Konventionen wenden Sie beim Mounten zunächst enter und dann enter-active an, beim Entfernen entsprechend exit und dann exit-active. Die Basisklasse legt den Ausgangszustand fest, während die aktive Klasse den Endzustand mit einer Transition definiert.

Wenn Sie im richtigen Frame zwischen den beiden Klassen wechseln, wird die Animation ausgelöst.

Auf transitionend hören

Um zu erkennen, wann eine Exit-Animation abgeschlossen ist, hören Sie am Element auf das Ereignis transitionend. Wenn es für den Exit-Vorgang ausgelöst wird, setzen Sie den State auf unmounted und entfernen den Knoten.

So wird das Unmounten exakt an das Ende der sichtbaren Animation gekoppelt, statt an ein geschätztes Timeout.

Eine wiederverwendbare Transition-Komponente

Sie können all dies in eine Transition-Komponente kapseln, die eine in-Prop und Children entgegennimmt. Sie lässt die Children während ihrer Exit-Animation gemountet und wendet je nach Phase die passenden Klassen an.

Verbraucher müssen lediglich in umschalten und erhalten korrekte Enter- und Exit-Bewegungen ohne zusätzlichen Aufwand.

Die aktive Klasse korrekt auslösen

Ein wichtiges Detail: Sie müssen dem Browser erlauben, die Startklasse zu zeichnen, bevor Sie die aktive Klasse hinzufügen. Andernfalls springt das Element ohne Transition. Ein requestAnimationFrame oder ein erzwungenes Reflow zwischen den beiden Schritten stellt sicher, dass die Transition tatsächlich ausgeführt wird.

So wird garantiert, dass der Browser zuerst die Startwerte registriert.

Vergleich mit react-transition-group

Die Bibliothek react-transition-group stellt die Komponenten Transition und CSSTransition bereit, die genau dieses Muster implementieren, einschließlich des Klassenlebenszyklus und des Zeitpunkts für das Unmounten.

Ihre selbst entwickelte Version bildet die zentralen Ideen der Bibliothek nach. Dadurch lässt sich die Bibliothek leicht verstehen, sobald Sie selbst eine solche Lösung entwickelt haben.

Bibliothek oder eigene Lösung?

Für ein einzelnes einfaches Einblenden genügt der Ansatz, das Element gemountet zu lassen, oder ein kleiner Hook; so vermeiden Sie eine zusätzliche Abhängigkeit. Für viele koordinierte Transitions, Listen mit Hinzufügungen und Entfernungen oder komplexe Abläufe spart eine Bibliothek Zeit und Fehler in Sonderfällen.

Entscheiden Sie abhängig davon, wie viel Animationskomplexität Ihre App tatsächlich benötigt.

Alles zusammenführen

Exit-Animationen erfordern, dass das Element bis zum Abschluss der Animation bestehen bleibt – unabhängig davon, ob Sie es dauerhaft mounten, eine State-Machine mit transitionend verwenden oder eine Bibliothek einsetzen.

Wenn Sie die Funktionsweise verstehen, können Sie den leichtgewichtigsten Ansatz wählen, der Ihre Anforderungen erfüllt.

Schnelltest

Testen Sie Ihr Verständnis von Exit-Animationen.

Zusammenfassung

Sie haben gelernt, warum Exit-Animationen schwierig sind, zwei Lösungen kennengelernt (das Element gemountet lassen und eine Mounting-State-Machine), erfahren, wie transitionend den Zeitpunkt des Unmountens bestimmt, und eine wiederverwendbare Transition-Komponente erstellt.

Außerdem haben Sie gesehen, wann Sie statt einer eigenen Lösung react-transition-group verwenden sollten.

Häufig gestellte Fragen

Ist die Lektion „Ein- und Austrittsanimationen ohne Bibliothek“ kostenlos?

Ja — der vollständige Text von „Ein- und Austrittsanimationen ohne Bibliothek“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ein- und Austrittsanimationen ohne Bibliothek“?

Implementieren Sie Mount- und Unmount-Animationen in React, indem Sie Anzeigedauer und Opazität manuell steuern. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Ein- und Austrittsanimationen ohne Bibliothek“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. CSS-Transitions bei Änderungen des React-Status
  2. CSS-Keyframe-Animationen mit React
  3. useLayoutEffect für Messungen vor Animationen
  4. Ein- und Austrittsanimationen ohne Bibliothek
← Zurück zu React Academy