在 v3.16 延迟水合支持的基础上,我们现在支持懒水合宏(#31192)!它们提供了一种更符合人体工程学的方式来控制组件水合。
<script setup lang="ts">
const LazyHydrationMyComponent = defineLazyHydrationComponent(
'visible',
() => import('./components/MyComponent.vue')
)
</script>
<template>
<div>
<!--
Hydration will be triggered when
the element(s) is 100px away from entering the viewport.
-->
<LazyHydrationMyComponent :hydrate-on-visible="{ rootMargin: '100px' }" />
</div>
</template>
这些宏使得 Nuxt 的懒水合工具可以与显式组件导入一起使用。
我们通过在内置的 app.vue 中包含 <NuxtRouteAnnouncer>(#32621)来增强可访问性。这意味着页面更改将通过屏幕阅读器进行播报,从而使视障用户更容易导航。(这仅适用于您的项目中没有 app.vue 的情况。如果您有,请将 <NuxtRouteAnnouncer> 保留在您的 app.vue 中!)
我们添加了 Chrome DevTools 工作区集成(#32084),允许您直接从 Chrome DevTools 编辑 Nuxt 源文件。这创造了更好的调试体验,在 DevTools 中所做的更改会反映在您的实际源文件中。
组件类型安全得到了改进,通过
<ClientOnly> 和 <DevOnly> 的类型化插槽 (#32707)——更好的 IntelliSense 和错误检查<NuxtTime> prop 类型 (#32547)——更容易扩展和定制onWatcherCleanup来自 vue 的 onWatcherCleanup 函数现在可以自动导入(#32396),使得清理观察器和防止内存泄漏更容易
const { data } = useAsyncData('users', fetchUsers)
watch(data, (newData) => {
const interval = setInterval(() => {
// Some periodic task
}, 1000)
// Clean up when the watcher is stopped
onWatcherCleanup(() => {
clearInterval(interval)
})
})
页面路由现在向 Nitro 暴露以进行可观测性(#32617),从而更好地与支持的平台进行监控和分析集成。这使得可观测性工具能够更有效地跟踪页面级指标。
模块作者获得了一些生活质量改进
addServerImports 工具现在支持单个导入(#32289),使得添加单个服务器工具更容易
// Before: had to wrap in array
addServerImports([{ from: 'my-package', name: 'myUtility' }])
// Now: can pass directly
addServerImports({ from: 'my-package', name: 'myUtility' })
模块现在可以添加到 typescript.hoist(#32601),从而更好地控制 TypeScript 配置和类型生成。
我们进行了一些性能优化
oxc-walker (#32250)和 oxc 用于 onPrehydrate 转换(#32045),实现更快的代码转换此版本还包括一些重要修复
scrollBehaviorType 现在仅用于哈希滚动(#32622)像往常一样,我们建议您运行以下命令进行升级
npx nuxi@latest upgrade --dedupe
这会刷新您的 lockfile 并拉取 Nuxt 依赖的所有最新依赖项,尤其是来自 unjs 生态系统的依赖项。
衷心感谢参与此次发布的所有人。在接下来的六个月中,我们将继续向后移植兼容的 v4 功能和错误修复,所以请继续提出反馈!❤️