Creation:2025-08-23Last update:2025-08-23
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
useRewriteURL 钩子
useRewriteURL 钩子用于在客户端管理本地化的 URL 重写。它会根据用户的 locale 以及在 intlayer.config.ts 中定义的重写规则,自动检测当前 URL 是否应被纠正为更“美观”的本地化版本。
不同于标准的导航,这个钩子使用 window.history.replaceState 来更新地址栏中的 URL,而不会触发完整页面重载或路由器的导航周期。
用法
只需在客户端组件中调用此 Hook。
工作原理
- 检测:该 Hook 监视当前的
window.location.pathname以及用户的locale。 - 匹配:它使用内部的 Intlayer 引擎来检查当前的 pathname 是否匹配一个规范路由,该路由在当前语言环境下有一个更好看的本地化别名。
- URL 校正:如果找到更好的别名(且它与当前路径不同),该 Hook 会调用
window.history.replaceState来更新浏览器的 URL,同时保留相同的规范内容和状态。
为什么使用它?
- SEO:确保用户始终访问到特定语言的唯一、权威的漂亮 URL。
- 一致性:防止出现不一致的情况,例如用户可能手动输入规范路径(如
/fr/privacy-notice)而不是本地化版本(/fr/politique-de-confidentialite)。 - 性能:在不触发不必要的路由副作用或组件重新挂载的情况下更新地址栏。