Creation:2025-08-23Last update:2025-08-23
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
useRewriteURL 钩子
针对 Svelte 的 useRewriteURL 钩子用于在客户端管理本地化 URL 的重写。它会根据当前 locale 和 intlayer.config.ts 中的配置,自动将浏览器的 URL 校正为更“漂亮”的本地化别名。
它通过 window.history.replaceState 静默更新 URL,从而避免触发完整的 SvelteKit 导航。
用法
在 Svelte 组件中调用该钩子。
工作原理
- Reactive Updates: 该 hook 订阅 Intlayer 的
localestore。 - Detection: 每当 locale 变化(或组件挂载时),它会计算当前的
window.location.pathname是否在你的重写规则中定义了更漂亮的本地化别名。 - URL Correction: 如果找到更漂亮的路径,hook 会调用
window.history.replaceState来更新地址栏,而不会进行完整的页面重载或触发 SvelteKit 的导航逻辑。
为什么使用它?
- SEO 最佳实践:确保搜索引擎仅索引漂亮的、本地化的 URL 版本。
- 改进的 UX:将手动输入的 URL 修正为你首选的命名结构。
- 静默更新:在不影响组件树或导航历史的情况下修改地址栏。