Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
Hook useRewriteURL
Hook useRewriteURL dla Next.js to hook po stronie klienta, który automatycznie zarządza zlokalizowanym przepisywaniem adresów URL. Zapewnia, że URL w przeglądarce zawsze odzwierciedla „ładną” zlokalizowaną ścieżkę zdefiniowaną w Twoim intlayer.config.ts, nawet jeśli użytkownik ręcznie wpisze kanoniczną ścieżkę z prefiksem lokalizacji.
Ten hook działa dyskretnie, używając window.history.replaceState, co pozwala uniknąć zbędnych nawigacji routera Next.js lub odświeżeń strony.
Użycie
Po prostu wywołaj hook w Client Component, który jest częścią Twojego layoutu.
Jak to działa
- Monitorowanie ścieżki: Hook nasłuchuje zmian w
localeużytkownika. - Wykrywanie przepisania (rewrite): Porównuje bieżący
window.location.pathnamez regułami rewrite zawartymi w Twojej konfiguracji. - Korekta URL: Jeśli dla bieżącej ścieżki zostanie znaleziony ładniejszy, zlokalizowany alias, hook wywołuje
window.history.replaceState, aby zaktualizować pasek adresu, pozostawiając użytkownika na tej samej wewnętrznej stronie.
Dlaczego używać tego w Next.js?
Podczas gdy intlayerMiddleware obsługuje przepisywania po stronie serwera i początkowe przekierowania, hook useRewriteURL zapewnia, że adres URL w przeglądarce pozostaje zgodny z preferowaną strukturą SEO nawet po przejściach po stronie klienta.
- Czyste adresy URL: Wymusza użycie zlokalizowanych segmentów, takich jak
/fr/essaiszamiast/fr/tests. - Wydajność: Aktualizuje pasek adresu bez wywoływania pełnego cyklu routera ani ponownego pobierania danych.
- Zgodność z SEO: Zapobiega problemom z duplikacją treści, zapewniając, że użytkownikom i robotom wyszukiwarek widoczna jest tylko jedna wersja URL.