WebApp Routing: Gestire più route nelle app react.js
Nelle applicazioni con React sembra di essere vincolati ad avere una unica URL per la nostra webapp, trattandosi di quello che tecnicamente si indica con SPA (single page app). In realtà esistono dei pacchetti che consentono di sfruttare la struttura a componenti di react per ottenere un comportamento tale per cui vengono gestiti URL differenti e per ogni URL viene mostrata nel client una vista differente.
Questo effetto viene ottenuto sfruttando il fatto che potendo leggere l’url richiesta sarà poi possibile decidere quali componenti visualizzare o meno, gestire i parametri contenuti nelle URL ed altre operazioni simili. Per ottenere questo possiamo utilizzare la libreria react-router.
Come primo step dobbiamo inizializzare il pacchetto nella nostra webapp con il solito
npm install react-router-dom
Nel file index.js
dove è presente il nostro componente App
dobbiamo prima di tutto importare alcuni componenti:
import {
BrowserRouter as Router,
Switch,
Route,
Link
} from "react-router-dom";
Router
è il componente che abilita il parsing delle URL e che consente di attivare il meccanismo direact-router
.Switch
con all’interno dei componentiRoute
consentirà poi di selezionare quale route seguire in relazione alpath
presente nell’url.Link
si utilizza per creare dei link che sfruttano il meccanismo direact-router
il nostro componente App()
diventa quindi
function App() {
return (
<Router>
<h1>titolo</h1>
<Switch>
<Route path="/vinyls">
<VinylsList />
</Route>
<Route path="/authors">
autori
</Route>
<Route path="/">
home
</Route>
</Switch>
</Router>
)
}
se l’url vale "/vinyls"
ad esempio verrà mostrato a video il componente <VinylsList />
.
Per il codice completo del progetto fai riferimento al Repository di GitHub