Enkelsidiga React-applikationer med React-Router och React-Transition-Group Modules

Denna handledning kommer att gå igenom dig genom att använda modulerna Reaktor-router och Reaktionsövergång-Grupp för att skapa flera sidor React-applikationer med sidövergångs animeringar.

Förbereda React App

Installera paketet Create-React-app

Om du någonsin har haft chansen att försöka reagera har du säkert hört talas om skapa reagera-app paket, vilket gör det super lätt att börja med en React-utvecklingsmiljö.

I den här handledningen använder vi detta paket för att initiera vår React app.

Så först och främst, se till att du har Node.js installerat på din dator. Det installerar också npm för dig.

I din terminal kör du npm installera-g skapa-reagera-app. Detta kommer att installeras globalt skapa reagera-app på din dator.

När det är klart kan du kontrollera om det finns där genom att skriva skapa-reagera-app -V.

Skapa reaktionsprojektet

Nu är det dags att bygga vårt React-projekt. Bara spring skapa multi-sida-app med skapande-reagerande app. Du kan självklart ersätta multi-page-app med allt du vill ha.

Nu, skapa reagera-app kommer att skapa en mapp som heter multi-page-app. Bara Skriv cd flersidig app ändra katalogen och kör nu npm start att initiera en lokal server.

Det är allt. Du har en React-app som körs på din lokala server.

Nu är det dags att städa standardfilerna och förbereda vår applikation.

I din src mapp, ta bort allt utom App.js och index.js. Öppna sedan index.js och ersätt innehållet med koden nedan.

Import Reakt från "reagera"; Importera ReactDOM från 'react-dom'; importera app från './App'; ReactDOM.render (, document.getElementById ( 'root')); 

Jag tog i grunden bort registerServiceWorker relaterade linjer och även importera "./index.css"; linje.

Ersätt också din App.js filen med koden nedan.

Importreakt, Komponent från "reagera"; klass App utökar komponent render () return ( 
); exportera standard App;

Nu installerar vi de nödvändiga modulerna.

I din terminal skriver du följande kommandon för att installera reagerar-router och reagerar-övergång-grupp moduler respektive.

npm installera reaktor-router-dom -save

npm installera [email protected] --save

Efter installationen av paketet kan du kontrollera package.json filen i din huvudprojektkatalog för att verifiera att modulerna ingår under beroenden.

Routerkomponenter

Det finns i princip två olika routeralternativ: HashRouter och BrowserRouter.

Som namnet antyder, HashRouter använder hash för att hålla reda på dina länkar, och den är lämplig för statiska servrar. Å andra sidan, om du har en dynamisk server är det ett bättre alternativ att använda BrowserRouter, med tanke på att dina webbadresser blir snyggare.

När du väl bestämmer vilken du ska använda, fortsätt bara och lägg till komponenten i din index.js fil.

importera HashRouter från "reager-router-dom"

Nästa sak är att paketera våra  komponent med routerns komponent.

Så din sista index.js filen ska se så här ut:

Import Reakt från "reagera"; Importera ReactDOM från 'react-dom'; importera HashRouter från "React-Router-Dom" Importera App från "./App"; ReactDOM.render (, document.getElementById ( 'root')); 

Om du använder en dynamisk server och föredrar att använda den BrowserRouter, Den enda skillnaden skulle vara att importera BrowserRouter och använda den för att paketera  komponent.

Genom att förpacka vår  komponent, vi betjänar historia motsätta sig vår ansökan, och sålunda kan andra reaktor-router komponenter kommunicera med varandra.

Inuti Komponent

Inuti vårt  komponent, vi kommer att ha två komponenter som heter 

och . Som namnen antyder kommer de att hålla navigeringsmenyn respektive visad innehåll.

Skapa en mapp som heter "komponenter" i din src katalog och skapa sedan Menu.js och Content.js filer.

Menu.js

Låt oss fylla i vårt Menu.js komponent.

Det kommer att vara en statslös funktionell komponent eftersom vi inte behöver tillstånd och livscykelhakar.

importera Reakt från "reagera" const Meny = () => returnera ( 
  • Hem
  • Arbetar
  • Handla om
) exportera standardmenyn

Här har vi en