React router i jego ekosystem: optymalizacja dla CTR i zamiaru wyszukiwania

React router i jego ekosystem: optymalizacja dla CTR i zamiaru wyszukiwania
Autor Wiktoria Czerwińska
Wiktoria Czerwińska02.01.2024 | 7 min.

React Router to niezwykle popularna biblioteka, która umożliwia tworzenie zaawansowanych aplikacji jednostronicowych (SPA). Dzięki React Router można zaimplementować routing po stronie klienta, co znacząco przyspiesza działanie aplikacji. W tym artykule przyjrzymy się bliżej ekosystemowi React Routera - jego podstawowym składnikom, sposobom konfiguracji i przekazywania parametrów. Dowiesz się, jak React Router obsługuje zmiany adresu URL. Omówione zostaną również korzyści płynące z zastosowania React Router w projekcie.

Jak React Router działa?

React Router to popularna biblioteka routingowa dla aplikacji stworzonych w React. Pozwala ona na stworzenie zaawansowanych aplikacji jednostronicowych (SPA - Single Page Application), w których zmiana widoku odbywa się bez przeładowywania całej strony. Zamiast tego, React Router obsługuje zmiany widoku poprzez modyfikację adresu URL i renderowanie odpowiednich komponentów React.

Działanie React Router opiera się na kilku kluczowych elementach:

  • Ścieżki (Routes) - określają powiązania pomiędzy ścieżkami URL a komponentami React.
  • Linki (Links) - komponenty pozwalające na nawigację poprzez klikanie, bez przeładowywania strony.
  • Przełączniki (Switches) - wyświetlają tylko pierwszy pasujący komponent React dla danej ścieżki.

Po dodaniu odpowiednich ścieżek i komponentów, React Router monitoruje adres URL i wyświetla pasujący widok bez przeładowywania strony. Pozwala to na bardzo płynną nawigację w aplikacji.

Przykład działania

Na przykład, mając zdefiniowane ścieżki dla adresów "/users" i "/products", React Router wyświetli komponent Users dla pierwszego adresu, a Products dla drugiego. Po wejściu bezpośrednio w adres "/products" zostanie wyświetlony odpowiedni widok, bez przeładowywania całej aplikacji.

Biblioteka React Router i jej składowe

React Router składa się z kilku kluczowych komponentów:

  • Router - komponent współrzędny, zazwyczaj BrowserRouter lub HashRouter.
  • Route - definiuje ścieżkę i powiązany z nią komponent.
  • Link - komponent do tworzenia linków w aplikacji.
  • NavLink - wariant komponentu Link z dodatkowymi stylami.
  • Switch - renderuje tylko pierwszą pasującą ścieżkę.
  • Redirect - przekierowuje na inną ścieżkę.

Te komponenty pozwalają zdefiniować routing aplikacji i zaimplementować nawigację po stronie klienta bez przeładowywania całej strony.

Przykład użycia

Typowa konfiguracja React Router wygląda następująco:


<BrowserRouter>

  <Link to="/products">Produkty</Link>
  
  <Switch>
    <Route path="/products">
      <Products /> 
    </Route>
    
    <Route path="/cart">
      <Cart />
    </Route>
    
    <Route path="/">
      <Home />
    </Route>
  </Switch>
  
</BrowserRouter>  

Dzięki temu kliknięcie w link do "/products" załaduje odpowiedni widok, bez przeładowywania strony.

Czytaj więcej: Procesory Intel Xeon - wszystko o wydajnych procesorach serwerowych

Konfiguracja ścieżek w React Router

Jednym z kluczowych elementów React Router są komponenty Route, które wiążą ścieżki z komponentami React.

Podstawowa składnia Route wygląda tak:


<Route path="ścieżka" component={Komponent} /> 

Np. aby wyświetlić komponent Users pod adresem "/users":


<Route path="/users" component={Users} />

Ścieżki mogą zawierać parametry, np. "/users/:id" lub wildcardy "/users/*". Parametry te można odczytać w komponencie za pomocą hooka useParams().

Możliwe jest zagnieżdżanie Route, aby zbudować bardziej złożone układy. Route może renderować zarówno pojedynczy komponent, jaki i cały układ zagnieżdżonych komponentów.

Leniwe ładowanie komponentów

Domyślnie Route ładują komponenty leniwie - renderują je tylko wtedy, gdy pasuje ścieżka. Można to zmienić stosując atrybut exact lub strict.

Renderowanie komponentów w React Router

Istnieje kilka sposobów na sterowanie tym, które komponenty są renderowane w React Router w zależności od ścieżki:

Switch

Komponent Switch sprawia, że wyrenderowana zostanie tylko pierwsza pasująca ścieżka, ignorując pozostałe. Użycie Switch pozwala uniknąć renderowania wielu komponentów dla tej samej ścieżki.


  <Switch>
    <Route exact path="/" component={Home} />
    <Route path="/products" component={Products} />
    <Route path="/cart" component={Cart} />
  </Switch>

Route render / children

Komponent Route może przyjmować również funkcję render zamiast propsa component. Pozwala to na większą kontrolę nad renderowaniem:


  <Route 
    path="/products/:id"
    render={(props) => <ProductDetails {...props} />}
  />

Podobną kontrolę daje przekazanie komponentu jako children zamiast component.

Outlet

Outlet pozwala na renderowanie zagnieżdżonych komponentów w miejscu swojego użycia. Przydatne gdy layout aplikacji jest podzielony na części.


  <Layout>
    <Outlet /> {/* Tutaj załaduje się komponent z Route */}
  </Layout>
  
  <Route path="/products" component={Products} />

Przekazywanie parametrów w React Router

React Router umożliwia dostęp do parametrów zdefiniowanych w ścieżce na kilka sposobów:

useParams

Hook useParams zwraca obiekt z parametrami ścieżki. Działa w komponentach zagnieżdżonych w Route.


  // dla ścieżki /products/:id
  const { id } = useParams(); 

useLocation

useLocation zwraca obiekt location, który zawiera m.in. aktualny adres URL i ewentualne parametry przekazane w query stringu.


  const location = useLocation();
  const { search } = location;

Propsy Route'a

Propsy przekazane do komponentu zagnieżdżonego w Route zawierają parametry ścieżki w props.match.params oraz parametry z query stringa w props.location.search.


  <Route 
    path="/products/:id" 
    component={Product} 
  />

  // (...)

  const Product = (props) => {
    const id = props.match.params.id;
  }

Obsługa zmian adresu URL w React Router

React Router pozwala obsłużyć zmiany adresu URL na kilka sposobów:

NavLink i Link

Komponenty NavLink i Link z biblioteki React Router pozwalają zmieniać adres URL po kliknięciu, bez przeładowywania strony.


  <Link to="/products" />
  
  <NavLink to="/faq" />

useNavigate

Hook useNavigate zwraca funkcję navigate, która pozwala programowo zmienić ścieżkę, np. w handlerze zdarzenia.


  import { useNavigate } from 'react-router-dom';

  const navigate = useNavigate();

  const handleSave = () => {
    // zapis danych 
    navigate('/products'); 
  }

push

Obiekt history udostępniany przez Routera posiada metodę push(), która pozwala zmienić adres URL z poziomu kodu.


  import { useHistory } from 'react-router-dom';

  const history = useHistory();

  history.push('/home');

Korzyści z React Router w aplikacji

Główne zalety użycia React Router to:

  • Routing po stronie klienta bez przeładowywania strony
  • Szybka zmiana widoków aplikacji
  • Czytelne adresy URL opisujące stan aplikacji
  • Łatwa nawigacja przy użyciu komponentów Link i NavLink
  • Dostęp do parametrów ścieżki za pomocą hooków i propsów
  • Prosta autoryzacja i ograniczenie dostępu do części aplikacji
  • Łatwa integracja z biblioteką React i ekosystemem

Dzięki React Router możliwe jest zbudowanie zaawansowanej, jednostronicowej aplikacji o bogatej nawigacji i czytelnych adresach URL odzwierciedlających stan aplikacji. Stanowi nieodłączną część nowoczesnych aplikacji webowych opartych na React.

Podsumowanie

React Router to nieodłączny element nowoczesnych aplikacji internetowych opartych na React. Pozwala na stworzenie bogatej nawigacji bez przeładowywania strony, dzięki routingu po stronie klienta. Kluczowe w React Router są komponenty Route wiążące ścieżki URL z widokami aplikacji. Do zmiany widoku służą komponenty Link i NavLink, a aktualna ścieżka jest dostępna poprzez hooki jak useParams. Konfigurując Routes, Links i komponenty aplikacji można zbudować SPA o czytelnej nawigacji i szybkim działaniu.

React Router składa się z kilku podstawowych komponentów odpowiedzialnych za routing i nawigację. Należą do nich m.in. Router, Route, Link czy Switch. Ich kombinacja pozwala na elastyczne definiowanie widoków aplikacji i powiązanie ich ze ścieżkami URL. Oprócz deklaratywnego routingu, React Router udostępnia też funkcje nawigacji programowej jak useNavigate czy history. Komponenty React Router integracji się bezpośrednio z Reactem, tworząc spójną całość.

Korzystanie z React Router w projekcie daje szereg korzyści. Przede wszystkim pozwala uniknąć przeładowywania całej strony podczas nawigacji, zapewniając płynne UI. Adres URL odzwierciedla aktualny stan aplikacji. Nawigacja za pomocą komponentów Link i NavLink jest prosta w implementacji i użyciu. Parametry ścieżek są łatwo dostępne poprzez hooki i propsy. React Router to dobry standard routingu w Reactu, przyspieszający tworzenie SPA.

Podsumowując, React Router to biblioteka o kluczowym znaczeniu dla routingu w aplikacjach React. Pozwala na stworzenie bogatego interfejsu nawigacji bez przeładowywania strony i zapewnia integrację adresu URL ze stanem aplikacji. Jest to najpopularniejsze i rekomendowane rozwiązanie do obsługi routingu po stronie klienta w Reakcie.

5 Podobnych Artykułów:

  1. Zdjęcia darmowe do pobrania i obrazy za free
  2. Inspirujący krok w świat technologii dla dziewczyn - Girls Do Engineering
  3. Najlepszy program do księgowania KPiR w 2023 - porównanie i ranking
  4. Dra zus - co to jest? Poznaj definicję i zasady
  5. Jak zarobić kabel Ethernet - prosty przewodnik krok po kroku
tagTagi
shareUdostępnij
Autor Wiktoria Czerwińska
Wiktoria Czerwińska

Jestem pasjonatką technologii, podróży i biznesu. Na blogu znajdziesz porady, które pomogą Ci rozwijać swój biznes online. Dzielę się również wskazówkami dotyczącymi życia i produktów, które ułatwią codzienne funkcjonowanie. Moja misja to inspiracja i efektywność w każdym obszarze życia, a także ciekawe spojrzenie na świat marketingu. Zapraszam Cię do odkrywania nowych możliwości!

Oceń artykuł
rating-fill
rating-fill
rating-fill
rating-fill
rating-fill
Ocena: 4.00 Liczba głosów: 1

Komentarze (0)

email
email

Polecane artykuły

0