Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhNếu bạn có ý tưởng để cải thiện tài liệu này, vui lòng đóng góp bằng cách gửi pull request trên GitHub.
Liên kết GitHub tới tài liệuSao chép Markdown của tài liệu vào bộ nhớ tạm
Hook useRewriteURL
Hook useRewriteURL dành cho Next.js là một hook phía client tự động quản lý việc viết lại URL đã bản địa hóa. Nó đảm bảo rằng URL trên trình duyệt luôn phản ánh đường dẫn đã bản địa hóa "pretty" được định nghĩa trong intlayer.config.ts của bạn, ngay cả khi người dùng tự nhập một đường dẫn canonical có tiền tố locale.
Hook này hoạt động âm thầm bằng cách sử dụng window.history.replaceState, tránh các điều hướng router Next.js không cần thiết hoặc việc làm mới trang.
Cách sử dụng
Chỉ cần gọi hook trong một Client Component nằm trong layout của bạn.
Cách hoạt động
- Giám sát đường dẫn: Hook lắng nghe thay đổi của
localecủa người dùng. - Phát hiện rewrite: Hook so sánh
window.location.pathnamehiện tại với các quy tắc rewrite trong cấu hình của bạn. - Sửa URL: Nếu tìm thấy một alias đã được bản địa hóa "đẹp hơn" cho đường dẫn hiện tại, hook sẽ gọi
window.history.replaceStateđể cập nhật thanh địa chỉ trong khi vẫn giữ người dùng trên cùng trang nội bộ.
Tại sao nên dùng nó trong Next.js?
Trong khi intlayerMiddleware xử lý các rewrite phía server và các redirect ban đầu, hook useRewriteURL đảm bảo rằng URL trên trình duyệt vẫn nhất quán với cấu trúc SEO ưu tiên của bạn ngay cả sau các chuyển đổi phía client.
- URL rõ ràng: Buộc sử dụng các phân đoạn đã được địa phương hóa như
/fr/essaisthay vì/fr/tests. - Hiệu suất: Cập nhật thanh địa chỉ mà không kích hoạt một chu trình router đầy đủ hoặc tái lấy dữ liệu.
- Phù hợp với SEO: Ngăn chặn các vấn đề trùng lặp nội dung bằng cách đảm bảo chỉ có một phiên bản URL hiển thị với người dùng và các bot công cụ tìm kiếm.