Applicazioni a risposta singola con i moduli React-Router e React-Transition-Group

Questo tutorial ti guiderà attraverso l'utilizzo dei moduli react-router e react-transition-group per creare applicazioni React multi-pagina con animazioni di transizione delle pagine.

Preparazione dell'app React

Installazione del pacchetto create-react-app

Se hai mai avuto la possibilità di provare React, probabilmente ne hai sentito parlare Create-reagiscono-app pacchetto, il che rende estremamente facile iniziare con un ambiente di sviluppo React.

In questo tutorial, useremo questo pacchetto per avviare la nostra app React.

Quindi, prima di tutto, assicurati di aver installato Node.js sul tuo computer. Installa anche npm per te.

Nel tuo terminale, corri npm install -g create-react-app. Questo verrà installato a livello globale Create-reagiscono-app sul tuo computer.

Una volta fatto, è possibile verificare se è lì digitando create-react-app -V.

Creazione del progetto React

Ora è il momento di costruire il nostro progetto React. Corri create-react-app-app multi-pagina. Puoi, naturalmente, sostituire multi-page-app con tutto ciò che vuoi.

Adesso, Create-reagiscono-app creerà una cartella denominata multi-page-app. Basta digitare cd multi-page-app per cambiare directory e ora eseguire inizio di npm per inizializzare un server locale.

È tutto. Hai un'app React in esecuzione sul tuo server locale.

Ora è il momento di pulire i file predefiniti e preparare la nostra applicazione.

Nel tuo src cartella, elimina tutto ma App.jsindex.js. Quindi apri index.js e sostituire il contenuto con il codice qui sotto.

import Reagire da "reagire"; importare ReactDOM da 'react-dom'; importare App da './App'; ReactDOM.render (, document.getElementById ( 'radice')); 

Ho praticamente cancellato il registerServiceWorker linee correlate e anche il importare './index.css'; linea.

Inoltre, sostituisci il tuo App.js file con il codice qui sotto.

import React, Component da 'react'; la classe App estende Component render () return ( 
); Esporta l'app predefinita;

Ora installeremo i moduli richiesti.

Nel tuo terminale, digita i seguenti comandi per installare il reagiscono-routerreagire-transizione-group moduli rispettivamente.

npm install react-router-dom --save

npm install [email protected] --save

Dopo aver installato i pacchetti, puoi controllare package.json file all'interno della directory principale del progetto per verificare che i moduli siano inclusi in dipendenze.

Componenti del router

Esistono fondamentalmente due diverse opzioni del router: HashRouterBrowserRouter.

Come il nome suggerisce, HashRouter usa gli hash per tenere traccia dei tuoi collegamenti, ed è adatto per server statici. D'altra parte, se si dispone di un server dinamico, è un'opzione migliore da utilizzare BrowserRouter, considerando il fatto che i tuoi URL saranno più belli.

Una volta che decidi quale usare, vai avanti e aggiungi il componente al tuo index.js file.

import HashRouter da 'react-router-dom'

La prossima cosa è avvolgere il nostro  componente con il componente router.

Quindi il tuo finale index.js il file dovrebbe assomigliare a questo:

import Reagire da "reagire"; importare ReactDOM da 'react-dom'; importare HashRouter dall'app di importazione "react-router-dom" da "./App"; ReactDOM.render (, document.getElementById ( 'radice')); 

Se stai usando un server dinamico e preferisci usare BrowserRouter, l'unica differenza sarebbe importare il BrowserRouter e usarlo per avvolgere il  componente.

Avvolgendo il nostro  componente, stiamo servendo il storia oggetto della nostra applicazione e quindi altri componenti del router di reazione possono comunicare tra loro.

Dentro Componente

Dentro il nostro  componente, avremo due componenti chiamati 

. Come indicano i nomi, terranno rispettivamente il menu di navigazione e il contenuto visualizzato.

Crea una cartella denominata "componenti" nel tuo src directory, quindi creare il file menu.jsContent.js File.

menu.js

Completiamo il nostro menu.js componente.

Sarà un componente funzionale stateless poiché non abbiamo bisogno di stati e di hook del ciclo di vita.

import Reagire da 'react' const Menu = () => return ( 
  • Casa
  • Lavori
  • Di
) menu predefinito di esportazione

Qui abbiamo un