I de senaste Reaktionshandledningarna fick du kännedom om grundläggande React-koncept som JSX, routing och formulär. I den här handledningen tar vi den till nästa nivå och försöker förstå animeringar i React.
Skapa en katalog som heter ReactAnimations
. Navigera till katalogen och initiera projektet med Node Package Manager eller npm.
mkdir ReactAnimations cd ReactAnimations npm init
Installera reagera
och reagerar-dom
till projektet.
npm installera reagera reagera dom - save
Vi ska använda Webpack
modulbuntaren för detta projekt. Installera Webpack
och webpack utvecklingsservern.
npm installera webpack webpack-dev-server - save-dev
Installera babel
paket för att konvertera JSX
syntax till JavaScript i vårt projekt.
npm installera - save-dev babel-core babel-loader babel-preset-reagera babel-preset-es2015
Skapa en konfigurationsfil som krävs av Webpack-dev-server
där vi ska definiera inmatningsfilen, utdatafilen och babellastaren. Så här är det webpack.config.js
utseende:
module.exports = entry: './app.js', modul: loaders: [exclude: / node_modules /, loader: 'babel-loader? presets [] = es2015 och förinställningar [] = reagera : filnamn: 'bundle.js';
Skapa en index.html
fil där ansökan kommer att göras. Så här ser det ut:
TutsPlus - React Animations
Skapa en fil som heter app.js
. Inuti app.js
importera de nödvändiga reaktionsbiblioteken enligt följande:
Import Reakt från "reagera"; importera render från 'react-dom';
Skapa en statslös komponent som heter Hem
vilket gör a H1
märka.
const Hem = () => returnera ('TutsPlus - Välkommen till React Animations!'
); ;
Lämna hemkomponenten inuti appelementet i index.html
sida. Så här är det app.js
utseende:
Import Reakt från "reagera"; importera render från 'react-dom'; const Hem = () => returnera ('TutsPlus - Välkommen till React Animations'
); ; göra(, document.getElementById ('app'));
Spara ovanstående ändringar och starta Webpack
server. Du ska få din app att köra på http: // localhost: 8080 / index.html.
React ger ett antal tilläggsverktyg för att skapa React apps. TransitionGroup
och CSSTransitionGroup
är API: erna för animering.
Från den officiella dokumentationen,
DeReactTransitionGroup
tilläggskomponent är ett API på låg nivå för animering, ochReactCSSTransitionGroup
är en tilläggskomponent för enkel implementering av grundläggande CSS-animationer och övergångar.
Låt oss börja med att prova en enkel animering i React. Installera reagerar-addons-css-övergång-grupp
till projektet.
npm installera reaktions-addons-css-transition-group -save
Importera ReactCSSTransitionGroup
inuti app.js
fil.
importera ReactCSSTransitionGroup från "reagera-addons-css-transition-group"
Inuti Hem
komponent som du skapade, släng upp h2
tagga inuti ReactCSSTransitionGroup
märka.
'TutsPlus - Välkommen till React Animations'
Använda ReactCSSTransitionGroup
tagg har du definierat den del där animering skulle äga rum. Du har angett ett namn för övergången med transitionName
. Du har också definierat om övergången ska visas, ange och lämna ska ske eller inte.
Använd övergångsnamnet definierat inuti ReactCSSTransitionGroup
, du definierar CSS-klasserna som skulle utföras på visas och när de är i aktivt läge. Lägg till följande CSS-stil i index.html
sida.
.anim-appear opacity: 0.01; .anim-appear.anim-appear-active opacitet: 2; övergång: opacity 5s lätt in;
Som du skulle ha märkt måste du ange animationsvaraktigheten både i renderingsmetoden och i CSS. Det är för att det är hur React vet när man tar bort animeringsklasserna från elementet och när man tar bort elementet från DOM.
Spara ovanstående ändringar och uppdatera sidan. När sidan har laddats, ska du inom några sekunder se den animerade texten.
För att få en bättre förståelse för enter och lämna animering, skapar vi en liten React-applikation. Appen skulle ha en inmatad textruta för att skriva in namnet. Du får se hur du lägger till enter animationen när ett namn läggs till i listan.
Inuti app.js
, skapa en ny klass som heter App
.
klass App utökar React.Component
Initiera a data
lista och a namn
variabel inuti komponentens initialtillstånd.
klass App sträcker sig React.Component konstruktör (rekvisita) super (rekvisita); this.state = data: [], name: ";
Inne i delarna av App-komponenten placerar du en inmatad textruta för att ange namnet och en knapp för att lägga till namnet på matrislistan.
Skriv namn
Definiera ingången handleChange
händelse och Lägg till
händelse inne i App-komponenten.
hanteraÄndra (e) this.setState (namn: e.target.value)
De handleChange
händelse sätter värdet på inmatningstextrutan till namn
variabel. Så här ser tilläggsmetoden ut:
lägg till () var ar = this.state.data.slice (); arr.push (id :( new Date ()). getTime (), 'namn': this.state.name) this.setState (data: arr)
Inuti Lägg till
metod, det inmatade namnet och ett unikt ID skjuts till data
matrislista.
Binda in handleChange
och Lägg till
metod i App-komponentens konstruktör.
konstruktör (rekvisita) super (rekvisita); this.add = this.add.bind (this); this.handleChange = this.handleChange.bind (this); this.state = data: [], name: ";
Du kommer att visa de inmatade namnen i en lista. Ändra render HTML-koden för att lägga till listan.
För att animera de nyligen tillagda objekten lägger vi till ReactCSSTransitionGroup
tagga över li
element.
Lägg till följande CSS
övergångsstil till index.html
sida.
.anim-enter opacitet: 0,01; .anim-enter.anim-enter-aktiv opacitet: 2; övergång: opacity 5s lätt in;
Här är den fullständiga App-komponenten:
klass App sträcker sig React.Component konstruktör (rekvisita) super (rekvisita); this.add = this.add.bind (this); this.handleChange = this.handleChange.bind (this); this.state = data: [], namn: "; add () var arr = this.state.data.slice (); arr.push ('id' :( nytt datum ()). getTime (name: e.target.value) render () returnera) return.text (Skriv namn)
this.state.data.map (funktion (spelare) return - spelarnamn
)
Spara ovanstående och uppdatera sidan. Ange ett namn och ange add-knappen och objektet ska läggas till i listan med animering.
På samma sätt kan ledighetsanimationen också implementeras i ovanstående kod. När borttagningsfunktionen har implementerats i programmet lägger du till lämna
och lämna-aktiv
klass till index.html
. Ställ in transitionLeave
till Sann
i ReactCSSTransitionGroup
tag i renderingsmetoden, och du borde vara bra att gå.
I den här handledningen såg du hur du började med att använda animeringar i React. Du skapade en enkel React app och såg hur du implementerar visas och skriv in animering. För djup information om animationer i React rekommenderar jag att du läser den officiella dokumentationen.
Källkoden från denna handledning finns på GitHub.
Under de senaste åren har React vuxit i popularitet. Faktum är att vi har ett antal objekt på marknaden som är tillgängliga för köp, granskning, genomförande och så vidare. Om du letar efter ytterligare resurser runt React, tveka inte att kolla in dem.
Låt oss veta dina tankar i kommentarerna nedan. Ta en titt på min Envato Tuts + instruktörssida för mer handledning om React och relaterad webbteknik.