新功能
v10 中的新功能
通过 definePageMeta() 自定义路由
我们增加了对使用 definePageMeta() API 设置页面自定义路由的支持,现在这是设置页面自定义路由的推荐方式。
通过在模块选项中设置 customRoutes: 'meta' 可以启用此方法。
要从 defineI18nRoute() 宏迁移,你可以简单地将其替换为 definePageMeta() 并设置具有相同选项的 i18n 属性:
pages/about.vue
<script setup>
definePageMeta({
i18n: {
paths: {
en: '/about-us',
fr: '/a-propos',
}
}
})
</script>
Nitro 端语言检测和重定向
语言检测和重定向已重新实现,由 Nitro 服务器处理,这使我们能够在请求生命周期的早期重定向请求,从而提高性能。
以前的实现在与预渲染结合使用时无法正常工作,而新的实现则可以。
尽管此更改使检测和重定向更加准确,并且应该更好地符合文档行为,但如果这在您的项目中导致问题,可以通过在模块选项中设置 experimental.nitroContextDetection: false 来禁用它。禁用此功能的选项是暂时的,将在未来版本中移除。
实验性严格 SEO 模式
我们添加了一个新的实验性选项 strictSeo,它启用严格 SEO 模式,这改变了 i18n 头部标签的处理方式。
启用严格 SEO 模式后,i18n 头部标签在内部进行管理,这允许一些急需的改进:
- 当设置本地化动态路由参数时,模块将不再为不受支持的语言环境添加备用标签。
- 用于
<SwitchLocalePathLink>的不受支持的语言环境链接被禁用,它们的链接将被设置为'#',并具有一个data-i18n-disabled属性用于样式目的。 useLocaleHead()在严格 SEO 模式下不再需要,i18n 标签由模块自动设置,使用将抛出错误。- 规范查询参数通过
experimental.strictSeo.canonicalQueryParams进行全局配置。 useSetI18nParams()继承全局规范查询参数配置,可以通过其选项参数进行覆盖。
如果此模式被证明稳定,它将在 v11 中成为默认模式,请尝试使用并报告您遇到的任何问题。