Vue中文社区

Nuxt 3.18 发布了!将 v4 功能引入 v3,集成浏览器开发工具!

前言

7月中旬,我跟进了 4.0 版本的发布,没想到半个月不到,v3 版本也迎来了更新,本次更新的主要将 v4 功能引入 v3,改进了可访问性,更好的浏览器开发工具集成以及性能增强!

正文

Nuxt.js 作为基于 Vue.js 的强大框架,以其出色的服务器端渲染(SSR)和静态站点生成(SSG)能力,深受前端开发者的喜爱。

要体验 Nuxt 3.18 的新功能,开发者可以通过以下命令升级:

npx nuxi@latest upgrade --dedupe

以下是 Nuxt 3.18 的核心特性和改进的详细介绍。

1. 懒加载

Nuxt 3.18 引入了懒加载水合化宏,基于 v3.16 的水合化控制功能进行了优化。这一特性允许开发者通过更简洁的 API 控制组件的 hydration 过程。例如,可以延迟某些组件的 hydration,直到它们进入视口或满足特定条件,从而显著减少初始加载时间。这对于大型应用或包含大量动态内容的页面尤为重要。

示例:

<scriptsetuplang="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.config.ts 中配置适当的模块选项。

2. Accessibility 改进

无障碍性是现代 Web 开发的重要组成部分。Nuxt 3.18 在默认的 app.vue 中集成了 <NuxtRouteAnnouncer> 组件,该组件会在页面切换时为屏幕阅读器用户提供路由变化通知。这确保了视力受损的用户能够通过屏幕阅读器了解当前页面的标题或描述,符合 Web 无障碍性标准(WCAG)。

3. Chrome DevTools 工作区集成

Nuxt 3.18 引入了一项令人兴奋的功能:允许开发者直接从 Chrome DevTools 中编辑 Nuxt 源文件。这一集成让开发者可以在浏览器中实时调试和修改代码,无需频繁切换到代码编辑器。这对于快速定位和修复问题、优化客户端-服务器交互尤为有用,大幅提升了开发效率。

4. 更好的组件类型安全

Nuxt 3.18 改进了 <ClientOnly> 和 <DevOnly> 组件的类型槽位,并导出了 <NuxtTime> 的属性类型。这些改进为开发者提供了更精确的类型提示,减少了类型相关的错误。例如,在使用 <ClientOnly> 时,IDE 能够更好地识别插槽内容的类型,提升了 TypeScript 用户的开发体验。

5. onWatcherCleanup

Nuxt 3.18 将 Vue 的 onWatcherCleanup 钩子函数加入自动导入列表,开发者无需手动从 vue 导入即可使用。这一功能简化了观察者清理的代码编写,尤其在处理复杂的响应式逻辑时,能够减少冗余代码,提高代码可读性。

示例:

watch(someRef, (newValue, oldValue, onCleanup) => {
const timer = setInterval(() => {}, 1000);
  onWatcherCleanup(() => clearInterval(timer));
});

6. 可观察性增强

Nuxt 3.18 通过将页面路由暴露给 Nitro(Nuxt 的服务器端运行时),增强了应用的可观察性。这使得开发者可以更轻松地监控用户导航行为,为 A/B 测试、用户行为分析和性能优化提供了更好的支持。这一功能特别适合需要深入分析用户交互的大型应用。

7. 简化服务器导入

addServerImports 函数现支持单个导入,简化了在服务器端添加实用程序的过程。开发者可以更方便地将服务器端逻辑集成到 Nuxt 应用中,无需复杂的配置。这对于需要自定义服务器端功能的场景尤为实用。

8. TypeScript 配置增强

Nuxt 3.18 允许模块通过 typescript.hoist 添加额外的 TypeScript 配置。这一改进为需要自定义 TypeScript 设置的项目提供了更大的灵活性,确保类型系统的准确性和一致性。例如,开发者可以更精细地控制类型推断行为,优化大型项目的类型安全。

9. 性能优化

Nuxt 3.18 在性能方面进行了多项优化:

  • Vite-node 通信优化:通过内部套接字改进 Vite-node 通信,提升了开发服务器的响应速度。
  • 迁移到更快的转换工具:采用 oxc-walker 和 oxc 替换部分转换逻辑,显著提高了构建性能。 这些优化对于大型项目尤为重要,能够减少构建时间,提升开发和生产环境的效率。

10. 错误修复

Nuxt 3.18 修复了多项问题,包括:

  • 数据获取改进:优化了数据获取逻辑,确保更可靠的服务器端和客户端数据同步。
  • 滚动行为优化:修复了页面切换时的滚动问题,提升了用户体验。
  • 目录别名处理:解决了带尾斜杠的目录别名问题,确保路径解析的正确性。

最后

Nuxt 3.18 的发布为无法升级 v4 的开发者带来了强大的新功能和优化,从懒加载水合化到无障碍性改进,再到性能提升和开发工具集成,每一项更新都旨在帮助开发者构建更高效、更现代的 Web 应用!

今天的分享就这些了,感谢大家的阅读!如果文章中存在错误的地方欢迎指正!