Sobes.tech
Middle

Jakie są sposoby realizacji routingu w rozwoju frontend?

sobes.tech AI

Odpowiedź od AI

Istnieją dwa główne sposoby implementacji routingu na froncie:

  1. Routing po stronie klienta: Routing jest obsługiwany bezpośrednio w przeglądarce za pomocą JavaScript.

    • Zasada działania: Podczas nawigacji strona nie jest całkowicie przeładowywana. JavaScript zmienia URL na pasku adresu przeglądarki (używając API History) i dynamicznie ładuje lub rysuje potrzebne komponenty lub części strony.
    • Stan URL:
      • Używa API History (pushState, replaceState). URL jest czysty, bez #.
      • Może używać hash (#) w URL (przeszłe podejście z #).
    • Zalety:
      • Lepsze doświadczenie użytkownika (szybsze przejścia, bez pełnego przeładowania).
      • Odpowiedni dla aplikacji jednostronicowych (SPA).
    • Wady:
      • Wymaga dodatkowej konfiguracji serwera do poprawnego obsługiwania bezpośrednich wejść przez URL (np. ustawienie fallback na index.html).
      • Mogą wystąpić problemy z SEO, jeśli treść jest renderowana tylko po stronie klienta (rozwiązane przez SSR lub pre-rendering).
    • Popularne biblioteki/frameworki: React Router, Vue Router, Angular Router.
  2. Routing po stronie serwera: Routing jest całkowicie obsługiwany na stronie serwera.

    • Zasada działania: Przy każdym żądaniu nowego URL, przeglądarka wysyła żądanie do serwera. Serwer obsługuje żądanie, określa, jaką treść zwrócić, i wysyła pełną stronę HTML do klienta. Przeglądarka całkowicie przeładowuje stronę.
    • Stan URL: URL odpowiada rzeczywistemu zasobowi na serwerze.
    • Zalety:
      • Prostota implementacji dla wielostronicowych aplikacji (MPA).
      • Doskonała indeksacja przez wyszukiwarki (SEO), ponieważ treść jest od razu dostępna.
      • Nie wymaga JavaScript do podstawowej nawigacji.
    • Wady:
      • Wolniejsze przejścia między stronami z powodu pełnego przeładowania.
      • Mniej interaktywny w porównaniu z SPA.
    • Przykłady: Dziedziczy po tradycyjnych aplikacjach webowych, gdzie każdy URL odpowiada osobnemu plikowi lub trasie na serwerze (np. PHP, Python z frameworkami Django/Flask, Node.js z Express itp.).

W nowoczesnych aplikacjach frontendowych, szczególnie w SPA, routing po stronie klienta jest standardem. Routing po stronie serwera jest częściej używany dla wielostronicowych stron lub w połączeniu z routingiem po stronie klienta w celu poprawy SEO (np. SSR).