Denne opplæringen vil gå deg gjennom ved hjelp av reaksjonsrutene og reaksjonsovergang-gruppemodulene for å lage flersidige React-applikasjoner med sideovergangs animasjoner.
Hvis du noen gang har hatt sjansen til å prøve React, har du sikkert hørt om create reagere-app pakke, noe som gjør det super enkelt å starte med et React-utviklingsmiljø.
I denne opplæringen bruker vi denne pakken for å starte vår React-app.
Så først og fremst må du kontrollere at Node.js er installert på datamaskinen. Det vil også installere npm for deg.
I terminalen din, løp npm installere-g create-react-app
. Dette vil installere globalt create reagere-app på datamaskinen din.
Når det er gjort, kan du bekrefte om det er der ved å skrive opprett-reager-app -V
.
Nå er det på tide å bygge vårt React-prosjekt. Bare løp Opprett-reagere-app flersidet-app
. Du kan selvfølgelig erstatte flersidig-app
med alt du vil ha.
Nå, create reagere-app vil opprette en mappe som heter flersidig-app. Skriv bare cd-flersidet-app
å endre katalogen, og kjør nå npm start
å initialisere en lokal server.
Det er alt. Du har en React-app som kjører på din lokale server.
Nå er det på tide å rydde standardfilene og utarbeide programmet.
I din src
mappe, slett alt annet enn App.js
og index.js
. Så åpne index.js
og erstatt innholdet med koden nedenfor.
Import Reakt fra 'reagere'; importere ReactDOM fra 'react-dom'; importer app fra './App'; ReactDOM.render (, document.getElementById ( 'root'));
Jeg slettet i utgangspunktet registerServiceWorker
relaterte linjer og også importer './index.css';
linje.
Også, erstatt din App.js
filen med koden nedenfor.
Import React, Component fra 'reagere'; klassen App utvider komponent render () return (); eksporter standard app;
Nå skal vi installere de nødvendige modulene.
Skriv inn følgende kommandoer i din terminal for å installere reagere-router og reagere-overgang-gruppe moduler henholdsvis.
npm installere reager-router-dom - save
npm installere [email protected] --save
Etter at du har installert pakkene, kan du sjekke package.json
filen i hovedprosjektkatalogen for å verifisere at modulene er inkludert under avhengig.
Det er i utgangspunktet to forskjellige rutermuligheter: HashRouter og BrowserRouter.
Som navnet tilsier, HashRouter bruker hashes for å holde oversikt over koblingene, og den er egnet for statiske servere. På den annen side, hvis du har en dynamisk server, er det et bedre alternativ å bruke BrowserRouter, vurderer at nettadressene dine vil bli finere.
Når du bestemmer deg for hvilken du skal bruke, bare gå videre og legg til komponenten til din index.js
fil.
importer HashRouter fra 'reager-router-dom'
Den neste tingen er å pakke inn vår
komponent med ruteren komponent.
Så din siste index.js
filen skal se slik ut:
Import Reakt fra 'reagere'; importere ReactDOM fra 'react-dom'; importer HashRouter fra 'reagere-router-dom' importer app fra './App'; ReactDOM.render (, document.getElementById ( 'root'));
Hvis du bruker en dynamisk server og foretrekker å bruke BrowserRouter, Den eneste forskjellen ville være å importere BrowserRouter og bruker den til å pakke inn
komponent.
Ved å pakke inn vår
komponent, vi betjener historie protesterer mot vår søknad, og dermed kan andre reaktor-router komponenter kommunisere med hverandre.
Inne i vår
komponent, vil vi ha to komponenter kalt og
. Som navnene antyder, vil de holde navigasjonsmenyen og viste innholdet henholdsvis.
Opprett en mappe som heter "komponenter" i din src
katalog, og opprett deretter Menu.js
og Content.js
filer.
La oss fylle ut vårt Menu.js
komponent.
Det vil være en statsløs funksjonell komponent siden vi ikke trenger stater og livssyklus kroker.
importere React fra 'react' const Meny = () => retur (
Her har vi en
tag med koder, som vil være våre linker.
Legg nå følgende linje til din Meny komponent.
importer Link fra 'reager-router-dom'
Og deretter pakke innholdet i tagger med
komponent.
De komponent er i hovedsak a reagere-router komponent som fungerer som en
tag, men det oppdaterer ikke siden din med en ny målkobling.
Også, hvis du stiler din en
tag i CSS, vil du legge merke til at komponenten får samme styling.
Vær oppmerksom på at det er en mer avansert versjon av komponent, som er
. Dette gir deg ekstra funksjoner slik at du kan stile de aktive linkene.
Nå må vi definere hvor hver kobling vil navigere. For dette formålet, komponenten har a
til
rekvisitt.
Import React fra "reagere" import Link fra 'reager-router-dom' const Meny = () => retur (
Inne i vår
komponent, vil vi definere ruter for å matche lenker.
Vi trenger Bytte om
og Rute
komponenter fra reagere-ruter-dom. Så først og fremst importere dem.
importer Switch, Route fra 'reager-router-dom'
For det andre, importer de komponentene vi vil rute til. Dette er Hjem
, Virker
og Handle om
komponenter for vårt eksempel. Forutsatt at du allerede har opprettet de komponentene inni komponenter mappe, vi må også importere dem.
importer hjem fra './Home'
Import Works fra './Works'
Importer Om fra './About'
Disse komponentene kan være noe. Jeg definerte dem bare som statsløse funksjonelle komponenter med minimum innhold. En eksempelmal er nedenfor. Du kan bruke dette for alle tre komponentene, men bare glem ikke å endre navnene tilsvarende.
importere React fra 'react' const Hjem = () => retur (Hjem) eksporter standard hjem
Vi bruker
komponent til gruppe vår
komponenter. Bytte om ser etter alle ruter og returnerer deretter den første matchende en.
Ruter er komponenter som kaller målkomponenten hvis den samsvarer med sti
rekvisitt.
Den endelige versjonen av vår Content.js
filen ser slik ut:
Import React fra import av "React" Import Switch, Route fra "React-Router-Dom" Import Hjem fra "./Home" Import Works fra './Works' import Om fra './About' const Content = () = > retur () eksporter standardinnhold
Legg merke til at ekstra nøyaktig
prop er nødvendig for Hjem komponent, som er hovedkatalogen. Ved hjelp av nøyaktig
tvinger Rute for å matche det eksakte banenavnet. Hvis den ikke er brukt, vil andre stinavn begynne med /
vil også bli matchet av Hjem komponent, og for hver lenke vil den bare vise Hjem komponent.
Nå når du klikker på menylinkene, bør appen bytte innholdet.
Så langt har vi et fungerende rutersystem. Nå vil vi animere ruteovergangene. For å oppnå dette, vil vi bruke reagere-overgang-gruppe modul.
Vi vil animere montering tilstanden til hver komponent. Når du rangerer forskjellige komponenter med Rute komponent inne Bytte om, du er i hovedsak montering og demontering forskjellige komponenter tilsvarende.
Vi vil bruke reagere-overgang-gruppe I hver komponent ønsker vi å animere. Så du kan ha en annen monterings animasjon for hver komponent. Jeg vil bare bruke en animasjon for dem alle.
Som et eksempel, la oss bruke
komponent.
Først må vi importere CSSTransitionGroup.
importer CSSTransitionGroup fra 'react-transition-group'
Da må du pakke inn innholdet ditt med det.
Siden vi arbeider med komponentets monteringstilstand, aktiverer vi transitionAppear
og sett en timeout for det. Vi deaktiverer også transitionEnter
og transitionLeave
, siden disse bare er gyldige når komponenten er montert. Hvis du planlegger å animere noen barn av komponenten, må du bruke dem.
Til slutt, legg til det spesifikke transitionName
slik at vi kan referere til det i CSS-filen.
Import React fra "reagere" import CSSTransitionGroup fra "reaksjonsovergang-gruppe" import "... /styles/homeStyle.css 'const Hjem = () => return () eksporter standard hjem Hjem
Vi importerte også en CSS-fil, der vi definerer CSS-overgangene.
.homeTransition-vises opacity: 0; .homeTransition-appear.homeTransition-appear-active opacity: 1; overgang: alle .5s brukervennlighet
Hvis du oppdaterer siden, bør du se fade-effekten av Hjem komponent.
Hvis du bruker samme fremgangsmåte til alle andre rutede komponenter, ser du deres individuelle animasjoner når du endrer innholdet med din Meny.
I denne opplæringen dekket vi reagere-ruter-dom og reagere-overgang-gruppe moduler. Det er imidlertid mer til begge modulene enn vi dekket i denne opplæringen. Her er en arbeider demo av det som var dekket.
Så, for å lære mer funksjoner, gå alltid gjennom dokumentasjonen av modulene du bruker.
I løpet av de siste par årene har React vokst i popularitet. Faktisk har vi en rekke elementer på markedet som er tilgjengelige for kjøp, gjennomgang, implementering og så videre. Hvis du leter etter flere ressurser rundt React, ikke nøl med å sjekke dem ut.