Etwas so Einfaches sollte leicht zu erreichen sein, aber ich ziehe mir die Haare aus, wie kompliziert es ist.
Ich möchte nur das Ein- und Aushängen einer React-Komponente animieren, fertig. Folgendes habe ich bisher versucht und warum nicht jede Lösung funktioniert:
ReactCSSTransitionGroup
- Ich verwende überhaupt keine CSS-Klassen, es sind alles JS-Stile, also funktioniert das nicht.ReactTransitionGroup
- Diese untergeordnete API ist großartig, erfordert jedoch die Verwendung eines Rückrufs, wenn die Animation abgeschlossen ist. Daher funktioniert es hier nicht, nur CSS-Übergänge zu verwenden. Es gibt immer Animationsbibliotheken, was zum nächsten Punkt führt:- GreenSock - Die Lizenzierung ist für die geschäftliche Nutzung IMO zu restriktiv.
- Reaktion reagieren - Dies scheint großartig zu sein, ist aber
TransitionMotion
äußerst verwirrend und für das, was ich brauche, zu kompliziert. - Natürlich kann ich einfach Tricks machen wie die Material-Benutzeroberfläche, bei der die Elemente gerendert werden, aber verborgen bleiben (
left: -10000px
), aber ich würde diesen Weg lieber nicht gehen. Ich halte es für hacky und ich will meine Komponenten damit sie bereinigen und das DOM nicht überladen.
Ich möchte etwas, das einfach ist zu implementieren ist. Animieren Sie auf dem Mount eine Reihe von Stilen. Animieren Sie beim Aushängen denselben (oder einen anderen) Satz von Stilen. Getan. Es muss auch auf mehreren Plattformen eine hohe Leistung bieten.
Ich habe hier eine Mauer getroffen. Wenn mir etwas fehlt und es eine einfache Möglichkeit gibt, lassen Sie es mich wissen.
transform: scale
.thing { color: #fff; }
) nicht mit JS-Stilen ( const styles = { thing: { color: '#fff' } }
))