Creation:2025-08-23Last update:2025-08-23
将此文档参考到您的 AI 助手ChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本编辑此文档
如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接Copy
复制文档 Markdown 到剪贴板
useRewriteURL 钩子
用于 SolidJS 的 useRewriteURL 钩子用于在客户端管理本地化的 URL 重写。它会根据当前的 locale 和 intlayer.config.ts 中的配置,自动将浏览器的 URL 修正为更“漂亮”的本地化版本。
通过使用 window.history.replaceState,它避免了不必要的 Solid Router 导航。
用法
在你的应用组件中调用此钩子。
工作原理
- 检测: 该 hook 使用
createEffect来监视响应式locale()的更改。 - 匹配: 它会判断当前的
window.location.pathname是否对应一个规范路由,而该路由在当前语言下有更美观的本地化别名。 - URL 校正: 如果找到更美观的别名,hook 会调用
window.history.replaceState来更新地址栏,而不会影响内部导航状态或导致组件重新渲染。
为什么使用它?
- 权威 URL:为每个本地化版本强制使用单一 URL,这对 SEO 至关重要。
- 开发者便利性:允许你保持内部路由定义为规范形式,同时向外部展示对用户友好且本地化的路径。
- 一致性:当用户手动输入不符合首选本地化规则的路径时,纠正 URL。