Pamiętam jak dziś swój pierwszy większy projekt w React. Wszystko szło gładko, komponenty śmigały, stan był pod kontrolą… aż doszedłem do nawigacji. Próba zrobienia tego „na piechotę” to była droga przez mękę, istna masakra. Każde kliknięcie odświeżało całą stronę, gubiąc stan i psując całe wrażenie aplikacji SPA. Czułem się, jakbym cofnął się o dekadę w web devie. I wtedy, trochę zdesperowany, trafiłem na React Router DOM. To był moment przełomowy. Nagle wszystko stało się jasne i logiczne. To narzędzie nie jest tylko „biblioteką”, to jest absolutny fundament każdej sensownej aplikacji jednostronicowej. Jeśli chcesz naprawdę zrozumieć, jak używać react router dom, to jesteś w dobrym miejscu. Przejdziemy razem przez wszystko, od podstaw po te bardziej zakręcone tematy, żebyś Ty nie musiał przechodzić przez tę samą frustrację co ja. To kompletny przewodnik o tym, jak używać react router dom.
Spis Treści
ToggleZacznijmy od początku. Zanim cokolwiek zrobimy, musimy dodać paczkę do projektu. To akurat jest proste jak drut. W konsoli, w folderze z apką, wpisujesz po prostu npm install react-router-dom
. Jeśli wolisz Yarna, to yarn add react-router-dom
. Chwila moment i gotowe. To jest ten prosty krok, jak zainstalować react router dom.
Ale teraz uwaga, bo tu jest pierwszy moment, gdzie sam kiedyś poległem. Spędziłem chyba z godzinę, drapiąc się po głowie, dlaczego moje linki nie działają. Odpowiedź była banalna: zapomniałem o BrowserRouter
. Musisz nim owinąć całą swoją główną komponent aplikacji, zazwyczaj to będzie <App />
w pliku index.js
. To taki magiczny komponent, który dostarcza całej aplikacji wiedzy o tym, gdzie się aktualnie znajdujemy w nawigacji. Bez niego, reszta komponentów routera po prostu nie zadziała. Nie bądź jak ja z przeszłości, pamiętaj o tym! To naprawdę kluczowe, jeśli zastanawiasz się, jak używać react router dom poprawnie od samego startu.
Gdy to mamy z głowy, możemy w końcu zdefiniować jakieś trasy. Służą do tego dwa klocki: Routes
i Route
. Pomyśl o Routes
jak o pudełku, do którego wrzucasz wszystkie swoje ścieżki (czyli komponenty Route
). On już sam pilnuje, żeby w danym momencie wyświetlał się tylko jeden, pasujący komponet. Proste i genialne. W ten sposób szybko załapiesz, jak używać react router dom do budowania szkieletu apki. Więcej informacji znajdziesz na oficjalnej stronie React Router DOM.
Okay, mamy strukturę, ale jak się po niej poruszać? Tutaj do gry wchodzi komponent Link
. To jest zamiennik starego, dobrego tagu <a>
. Różnica jest fundamentalna – Link
nie przeładowuje całej strony. To właśnie dzięki niemu nasza aplikacja zachowuje się jak prawdziwe SPA, a przejścia między widokami są płynne i natychmiastowe. Zrozumienie tego to podstawa tego, jak stworzyć nawigację w react router dom.
A co, jeśli chcemy podświetlić link, który jest aktualnie aktywny? Na przykład w menu? Z pomocą przychodzi NavLink
. Działa identycznie jak Link
, ale ma supermoc: automatycznie dodaje klasę CSS (domyślnie 'active’) do aktywnego linku. To mała rzecz, a oszczędza masę warunkowego stylowania. Kiedyś trzeba było to robić ręcznie, co było uciążliwe. Teraz, z wiedzą react router dom v6 jak używać, wszystko jest prostsze. A propos v6, warto pamiętać, że zastąpił on stary komponent Switch
nowym, zwanym Routes
, co moim zdaniem bardzo uprościło logikę. Jeśli chcesz wiedzieć, jak używać react router dom w nowoczesny sposób, trzymaj się składni v6.
Prędzej czy później trafisz na potrzebę stworzenia dynamicznych stron. Profil użytkownika, szczegóły produktu, wpis na blogu. Przecież nie będziesz tworzyć osobnego komponentu dla każdego z tysiąca produktów w sklepie! Tu właśnie objawia się piękno React Router DOM. Definiujesz trasę z parametrem, np. /produkty/:id
. Ten dwukropek to sygnał, że 'id’ jest zmienną.
I teraz najlepsze: jak te dane wyciągnąć? Z pomocą przychodzi hak useParams
. To było dla mnie jak objawienie. W komponencie, który jest renderowany przez dynamiczną trasę, po prostu wywołujesz const { id } = useParams();
i masz dostęp do tego, co użytkownik wpisał w URL. Proste, czyste i mega potężne. To jest jeden z tych momentów, kiedy naprawdę doceniasz, jak używać react router dom. Zrozumienie react router dom useparams otwiera drzwi do budowania prawdziwie interaktywnych aplikacji. Te przykłady użycia react router dom pokazują jego elastyczność.
Czasami kliknięcie w link to za mało. Chcemy przekierować użytkownika automatycznie, np. po pomyślnym zalogowaniu albo po wysłaniu formularza. I tu pojawia się react router dom nawigacja programistyczna. W starszych wersjach było to trochę pokręcone, ale teraz mamy hak useNavigate
. To jest po prostu genialne w swojej prostocie. Wywołujesz go w komponencie: const navigate = useNavigate();
i dostajesz funkcję, którą możesz odpalić w dowolnym momencie. Chcesz przenieść usera na stronę główną? Proszę bardzo: navigate('/');
. Chcesz go cofnąć? navigate(-1);
. Pełna kontrola. To kolejna odpowiedź na pytanie, jak używać react router dom, by aplikacja była bardziej dynamiczna.
W dużych aplikacjach, jak np. panel administracyjny, często mamy wspólny layout dla całej sekcji – ten sam nagłówek, to samo menu boczne. A zmienia się tylko główna treść. React Router DOM ma na to genialne rozwiązanie: react router dom zagnieżdżone trasy. Definiujesz jedną trasę-rodzica, która ma swój layout, a wewnątrz niej kolejne trasy-dzieci.
Kluczem do tego jest komponent Outlet
. To jest jakby „miejsce do wypełnienia”. W komponencie layoutu wstawiasz <Outlet />
dokładnie tam, gdzie mają się renderować komponenty dzieci. To niesamowicie ułatwia organizację kodu i zapobiega powtarzaniu tych samych elementów. Zrozumienie react router dom outlet to skok na wyższy poziom w strukturze aplikacji. Wiedza o tym, jak używać react router dom zagnieżdżone trasy, to mus w każdym większym projekcie.
To pytanie spędza sen z powiek wielu początkującym. React router dom przekazywanie danych oferuje kilka sposobów. Możesz użyć parametrów w URL (to już znamy z useParams
). Możesz też użyć parametrów zapytania (query params), czyli tego co jest po znaku zapytania, np. /szukaj?q=react
. Do tego służy hak useSearchParams
. Ale jest też trzecia, ciekawa opcja: przekazywanie stanu przez navigate
lub Link
. To są dane, które nie są widoczne w adresie URL, co jest super do przekazywania tymczasowych informacji, których nie chcemy pokazywać światu. Każda metoda ma swoje miejsce, a wiedza, jak używać react router dom do żonglowania danymi, jest bardzo cenna.
Każdemu zdarza się wpisać zły adres. Profesjonalna aplikacja nie może wtedy po prostu się wysypać albo pokazać białej strony. Musi elegancko obsłużyć błąd. React router dom obsługa błędów 404 jest banalnie prosta. W swoim kontenerze Routes
, na samym końcu, dodajesz jedną specjalną trasę: <Route path="*" element={<Strona404 />} />
. Gwiazdka oznacza „złap wszystko inne, co nie pasowało do wcześniejszych tras”. Dzięki temu możesz wyświetlić ładny komunikat, dać link do strony głównej i zadbać o dobre wrażenie użytkownika nawet wtedy, gdy coś poszło nie tak. To mały detal, ale świadczy o jakości. To kolejny przykład, jak używać react router dom do budowania kompletnych aplikacji.
Gdy opanujesz podstawy, otworzy się przed Tobą świat zaawansowanych możliwości. Jedną z najważniejszych są react router dom prywatne trasy. Chodzi o to, żeby pewne części aplikacji były dostępne tylko dla zalogowanych użytkowników. Tworzysz wtedy specjalny komponent-strażnik, który sprawdza, czy user ma uprawnienia, i jeśli nie – przekierowuje go na stronę logowania. Kolejna super technika to Lazy Loading, czyli leniwe ładowanie komponentów. Zamiast ładować cały kod aplikacji na starcie, ładujesz tylko to, co potrzebne. React Router świetnie współpracuje z React.lazy
i Suspense
, co potrafi niesamowicie przyspieszyć start aplikacji. Warto zgłębić te tematy, bo to pokazuje, jak używać react router dom w naprawdę dużych, produkcyjnych systemach.
React Router DOM to narzędzie, które z koszmaru nawigacji w SPA zrobiło przyjemność. Mam nadzieję, że ten tekst, oparty na moich własnych zmaganiach i odkryciach, pomógł Ci zrozumieć nie tylko „co”, ale też „dlaczego”. Przeszliśmy od instalacji, przez podstawy, po zaawansowane techniki. Zobaczyliśmy, jak używać react router dom do tworzenia dynamicznych, zagnieżdżonych i bezpiecznych aplikacji. Pamiętaj, że dobra nawigacja to kręgosłup user experience. Nie bój się eksperymentować, zaglądać do dokumentacji i budować. A jak już poczujesz się pewnie, sprawdź, co oferuje Remix framework, bo to kolejny krok w ewolucji routingu. Mam nadzieję, że teraz już wiesz, jak używać react router dom, i że Twoje projekty staną się dzięki temu lepsze. Po solidne podstawy samego Reacta zawsze warto zajrzeć do oficjalnej dokumentacji React.
Copyright 2025. All rights reserved powered by domyogrody.eu