Einführung in Animationen in Reaktion

In den letzten beiden React-Tutorials haben Sie sich mit grundlegenden React-Konzepten wie JSX, Routing und Formularen vertraut gemacht. In diesem Tutorial werden wir es auf die nächste Stufe bringen und versuchen, Animationen in React zu verstehen. 

Fertig machen

Erstellen Sie ein Verzeichnis mit dem Namen ReactAnimations. Navigieren Sie zu dem Verzeichnis und initiieren Sie das Projekt mit Node Package Manager oder npm.

mkdir ReactAnimations cd ReactAnimations npm init

Installieren reagieren und reagieren dom zum Projekt. 

Installieren Sie npm reave-dom --save

Wir werden verwenden Webpack Modulbündler für dieses Projekt. Installieren Webpack und Webpack-Entwicklungsserver.

npm install webpack webpack-dev-server --save-dev

Installiere das Babel Paket zu konvertieren JSX Syntax für JavaScript in unserem Projekt.

npm install --save-dev Babel-Core Babel-Loader Babel-Preset-React Babel-Preset-es2015

Erstellen Sie eine Konfigurationsdatei, die von benötigt wird webpack-dev-server Wo definieren wir die Eingabedatei, Ausgabedatei und den Babel Loader. Hier ist, wie webpack.config.js sieht aus:

module.exports = entry: './app.js', Modul: loaders: [exclude: / node_modules /, loader: 'babel-loader? presets [] = es2015 & presets [] = reag'], ausgabe : Dateiname: 'bundle.js';

Erstelle ein index.html Datei, in der die Anwendung gerendert wird. So sieht es aus:

  TutsPlus - Reakt Animationen   

Erstellen Sie eine Datei mit dem Namen app.js. Innerhalb app.js Importieren Sie die erforderlichen Reaktibibliotheken wie gezeigt:

import Reagieren von 'Reagieren'; import render von 'react-dom';

Erstellen Sie eine zustandslose Komponente, die aufgerufen wird Zuhause das macht ein H1 Etikett.

const Home = () => return ( 

'TutsPlus - Willkommen, um Animationen zu reagieren!'

); ;

Rendern Sie die Home-Komponente innerhalb des App-Elements in der index.html Seite. Hier ist, wie app.js sieht aus:

import Reagieren von 'Reagieren'; import render von 'react-dom'; const Home = () => return ( 

'TutsPlus - Willkommen, um Animationen zu reagieren'

); ; machen( , document.getElementById ('app'));

Speichern Sie die obigen Änderungen und starten Sie die Webpack Server. Sie sollten Ihre App unter http: // localhost: 8080 / index.html ausführen.

Animationen in Reaktion

React bietet eine Reihe von Zusatzprogrammen zum Erstellen von React-Apps. Übergangsgruppe und CSSTransitionGroup sind die für die Animation bereitgestellten APIs.

Aus der offiziellen Dokumentation,

Das ReactTransitionGroup Add-On-Komponente ist eine einfache API für Animationen und ReactCSSTransitionGroup ist eine Zusatzkomponente zur einfachen Implementierung grundlegender CSS-Animationen und -Übergänge.

Animation anzeigen

Beginnen wir damit, eine einfache Animation in React auszuprobieren. Installiere das reag-addons-css-übergangsgruppe zum Projekt.

Installiere npm install-addons-css-transition-group --save

Einführen ReactCSSTransitionGroup in der app.js Datei.

ReactCSSTransitionGroup aus 'Reakt-Addons-Css-Übergangsgruppe' importieren

In der Zuhause Komponente, die Sie erstellt haben, wickeln Sie die h2 tag in der ReactCSSTransitionGroup Etikett.

'TutsPlus - Willkommen, um Animationen zu reagieren'

Verwendung der ReactCSSTransitionGroup Sie haben den Abschnitt definiert, in dem die Animation stattfinden würde. Sie haben mit einen Namen für den Übergang angegeben Übergangsname. Sie haben auch festgelegt, ob der Übergang erscheinen soll, eingeben und verlassen soll oder nicht.

Verwenden Sie den Übergangsnamen, der im definiert ist ReactCSSTransitionGroup, Sie definieren die CSS-Klassen, die ausgeführt werden sollen und im aktiven Zustand sind. Fügen Sie den folgenden CSS-Stil hinzu index.html Seite.

.anim-erscheinen Opazität: 0,01;  .anim-erscheinen.anim-erscheinen-aktiv Deckkraft: 2; Übergang: Deckkraft 5s Leichtigkeit; 

Wie Sie bemerkt haben, müssen Sie die Animationsdauer sowohl in der Render-Methode als auch im CSS angeben. Dies liegt daran, dass React weiß, wann die Animationsklassen aus dem Element entfernt werden sollen und wann das Element aus dem DOM entfernt wird.

Speichern Sie die obigen Änderungen und aktualisieren Sie die Seite. Sobald die Seite geladen ist, sollten Sie den animierten Text innerhalb weniger Sekunden sehen können.

Animation eingeben / verlassen

Um die Eingabe- und Verlassen-Animation besser zu verstehen, erstellen wir eine kleine React-Anwendung. Die App verfügt über ein Eingabefeld zur Eingabe des Namens. Sie erfahren, wie Sie die Eingabe-Animation hinzufügen, wenn der Liste ein Name hinzugefügt wird. 

Innerhalb app.js, Erstellen Sie eine neue Klasse namens App.

Klasse App erweitert React.Component 

Initialisieren Sie a Daten Liste und a Name Variable im Anfangszustand der Komponente.

Klasse App erweitert React.Component Konstruktor (Requisiten) Super (Requisiten); this.state = data: [], name: ";

Platzieren Sie im Renderteil der App-Komponente ein Eingabetextfeld zur Eingabe des Namens und eine Schaltfläche, um den Namen der Array-Liste hinzuzufügen.

Name eingeben

Definieren Sie die Eingabe handleChange Ereignis und die hinzufügen Ereignis in der App-Komponente.

handleChange (e) this.setState (name: e.target.value)

Das handleChange event setzt den Wert des Eingabetextfelds auf Name Variable. So sieht die Add-Methode aus:

add () var arr = this.state.data.slice (); arr.push ('id' :( neues Datum ()). getTime (), 'name': this.state.name) this.setState (data: arr)

In der hinzufügen Methode wird der eingegebene Name und eine eindeutige ID in die Daten Anordnungsliste.

Binden Sie die handleChange und hinzufügen Methode im Konstruktor der App-Komponente.

Konstruktor (Requisiten) Super (Requisiten); this.add = this.add.bind (this); this.handleChange = this.handleChange.bind (this); this.state = data: [], name: ";

Sie werden die eingegebenen Namen in einer Liste anzeigen. Ändern Sie den Render-HTML-Code, um die Liste hinzuzufügen.

    this.state.data.map (Funktion (Spieler) Zurückkehren
  • Spielername
  • )

Um die neu hinzugefügten Elemente zu animieren, fügen wir das hinzu ReactCSSTransitionGroup über dem li Elemente.

    this.state.data.map (Funktion (Spieler) Zurückkehren
  • Spielername
  • )

Fügen Sie folgendes hinzu CSS Übergangsstil zum index.html Seite. 

.anim-enter Opazität: 0,01;  .anim-enter.anim-enter-active Deckkraft: 2; Übergang: Deckkraft 5s Leichtigkeit; 

Hier ist die komplette App-Komponente:

Klasse App erweitert React.Component Konstruktor (Requisiten) Super (Requisiten); this.add = this.add.bind (this); this.handleChange = this.handleChange.bind (this); this.state = data: [], name: "; add () var arr = this.state.data.slice (); arr.push ('id' :( new Date ()). getTime (), 'name': this.state.name) this.setState (data: arr) handleChange (e) this.setState (name: e.target.value) render () return ( 
Name eingeben
    this.state.data.map (Funktion (Spieler) Zurückkehren
  • Spielername
  • )
)

Speichern Sie das oben und aktualisieren Sie die Seite. Geben Sie einen Namen ein und geben Sie die Schaltfläche "Hinzufügen" ein. Das Element sollte der Liste mit Animation hinzugefügt werden.

In ähnlicher Weise kann die Urlaubsanimation auch im obigen Code implementiert werden. Sobald die Löschfunktion in der Anwendung implementiert wurde, fügen Sie das hinzu verlassen und verlassen lassen Klasse zum index.html. Stellen Sie das ein Übergangslevel zu Wahr in dem ReactCSSTransitionGroup Tag in der Rendermethode, und Sie sollten gut sein. 

Verpacken

In diesem Lernprogramm haben Sie erfahren, wie Sie mit den Animationen in React arbeiten können. Sie haben eine einfache React-App erstellt und gesehen, wie Sie das Erscheinen implementieren und die Animation eingeben. Für ausführliche Informationen zu Animationen in React würde ich empfehlen, die offizielle Dokumentation zu lesen.

Der Quellcode aus diesem Tutorial ist auf GitHub verfügbar.

Im letzten Jahr hat React an Popularität gewonnen. Tatsächlich gibt es auf dem Marktplatz eine Reihe von Artikeln, die zum Kauf, zur Überprüfung, zur Implementierung usw. zur Verfügung stehen. Wenn Sie nach weiteren Ressourcen rund um React suchen, zögern Sie nicht, sie herauszufinden.

Teilen Sie uns Ihre Meinung in den Kommentaren unten mit. Auf meiner Envato Tuts + Instructor-Seite finden Sie weitere Tutorials zu React und verwandten Webtechnologien.