Middle
Jakie są sposoby realizacji routingu w rozwoju frontend?
sobes.tech AI
Odpowiedź od AI
Istnieją dwa główne sposoby implementacji routingu na froncie:
-
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#).
- Używa API History (
- 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.
-
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).