Każda nowoczesna aplikacja internetowa wymaga nawigacji pomiędzy różnymi stronami. W przypadku aplikacji React najczęściej stosowanym rozwiązaniem jest React Router, który umożliwia efektywne i łatwe zarządzanie routowaniem. W tym artykule wyjaśnimy, czym jest React Router, jak działa i jak możesz go poprawnie zaimplementować w swojej aplikacji.
React Router to biblioteka, która umożliwia nawigację w aplikacjach typu single-page (SPA). Dzięki niemu możemy przełączać się pomiędzy różnymi stronami bez konieczności przeładowywania całej strony.
Poprawne routowanie w React pozwala na:
Zanim zaczniemy, należy zainstalować pakiet react-router-dom
:
npm install react-router-dom
Jeśli używasz Yarn, możesz go zainstalować za pomocą:
yarn add react-router-dom
Najprostszym sposobem użycia React Router jest zaimplementowanie go w aplikacji w następujący sposób:
import { BrowserRouter, Routes, Route } from "react-router-dom"; function Domow() { return <h2>Strona główna</h2>; } function O_nas() { return <h2>O nas</h2>; } function App() { return ( <BrowserRouter> <Routes> <Route path="/" element={<Domow />} /> <Route path="/o-nas" element={<O_nas />} /> </Routes> </BrowserRouter> ); } export default App;
Wyjaśnienie:
BrowserRouter
– Otacza aplikację i umożliwia zarządzanie ścieżkami URL.Routes
– Zawiera poszczególne Route
, które definiują ścieżki.Route
– Określa ścieżkę i komponent, który ma się pojawić.React Router dostarcza komponent Link
, który umożliwia nawigację pomiędzy stronami bez ich przeładowywania.
import { BrowserRouter, Routes, Route, Link } from "react-router-dom"; function Domow() { return <h2>Strona główna</h2>; } function O_nas() { return <h2>O nas</h2>; } function Nawigacja() { return ( <nav> <Link to="/">Strona główna</Link> | <Link to="/o-nas">O nas</Link> </nav> ); } function App() { return ( <BrowserRouter> <Nawigacja /> <Routes> <Route path="/" element={<Domow />} /> <Route path="/o-nas" element={<O_nas />} /> </Routes> </BrowserRouter> ); } export default App;
Teraz mamy nawigację, która pozwala na przełączanie pomiędzy stronami.
Często trzeba przekazywać parametry w URL. Można to osiągnąć przy pomocy hooka useParams
.
import { useParams } from "react-router-dom"; function Profil() { let { id } = useParams(); return <h2>Profil użytkownika: {id}</h2>; }
Dodanie dynamicznej ścieżki:
<Route path="/profil/:id" element={<Profil />} />
Jeśli teraz odwiedzisz /profil/123
, pojawi się „Profil użytkownika: 123”.
BrowserRouter
a HashRouter
?BrowserRouter używa czystych URL-i, podczas gdy HashRouter używa „#” w URL-u dla kompatybilności ze starszymi serwerami.
Możesz użyć hooka useNavigate
:
import { useNavigate } from "react-router-dom"; function Domow() { let navigate = useNavigate(); return <button onClick={() => navigate("/o-nas")}>Przejdź do O nas</button>; }
Dodaj do Routes
domyślną ścieżkę *
:
<Route path="*" element={<h2>Strona nie istnieje</h2>} />
useNavigate
można programowo zmieniać URL bez potrzeby przeładowania strony.Jeśli chcesz wziąć udział w kursach programowania online lub stacjonarnych, sprawdź naszą ofertę na www.like-it.sk. Nasze kursy prowadzą doświadczeni eksperci, którzy pomogą Ci opanować React od podstaw po zaawansowane koncepty.
Marián Knězek