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