🧪 延遲水合宏
在 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 工作區整合
我們添加了 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
kit 工具現在支援單個匯入(#32289),使其更容易新增單個伺服器實用程式
// Before: had to wrap in array
addServerImports([{ from: 'my-package', name: 'myUtility' }])
// Now: can pass directly
addServerImports({ from: 'my-package', name: 'myUtility' })
TypeScript 配置
模組現在可以新增到 typescript.hoist
(#32601),從而更好地控制 TypeScript 配置和型別生成。
⚡️ 效能改進
我們進行了一些效能最佳化
- 透過內部 socket 改進 Vite-node 通訊(#32417),以加快開發構建速度
- 遷移到
oxc-walker
(#32250)和 oxc 用於onPrehydrate
轉換(#32045),以加快程式碼轉換速度
🐛 錯誤修復
此版本還包括一些重要的修復
- 改進資料獲取:當計算鍵更改時,舊資料現在會正確保留(#32616)
- 更好的滾動行為:
scrollBehaviorType
現在僅用於雜湊滾動(#32622) - 修復目錄別名:為了一些目錄別名添加了尾部斜槓,以獲得更好的一致性(#32755)
✅ 升級
像往常一樣,我們建議您執行以下命令進行升級
npx nuxi@latest upgrade --dedupe
這會重新整理您的 lockfile 並拉取 Nuxt 依賴的所有最新依賴項,尤其是來自 unjs 生態系統的依賴項。
完整的釋出說明
非常感謝所有參與此版本釋出的人。在接下來的六個月中,我們將繼續向後移植相容的 v4 功能和錯誤修復,所以請繼續提供反饋!❤️