Nuxt 3.6 正式发布!

新闻资讯   2023-06-30 10:41   112   0  
 脚本之家 设为“星标
第一时间收到文章更新

出品 | 前端充电宝(ID:FE-Charge)

如若转载请联系原公众号

6 月 23 日,Nuxt 3.6 正式发布,该版本带来了性能优化、完全静态的服务端组件、更好的样式内联、静态预设、增强的类型安全等许多功能改进。

SPA 加载指示器

如果网站使用ssr: false提供服务,或者在某些页面上禁用了服务端渲染,那么可能会用到新的内置 SPA 加载指示器。

现在可以在 ~/app/spa-loading-template.html 中放一个 HTML 文件,其中包含用于渲染加载屏幕的 HTML 内容,在这些页面上,加载屏幕将一直显示,直到应用完成渲染。

默认会渲染一个 Nuxt 图标动画。可以通过在 nuxt 配置文件中设置spaLoadingTemplate: false来禁用这个指示器。

性能优化

当应用渲染时,首先会运行插件,该版本对插件进行了构建时优化,这意味着它们在运行时不需要进行规范化或重新排序。

除此之外,还将错误组件的 JavaScript 包含在主入口文件中,这意味着如果用户在没有连接的情况下发生错误,仍然可以通过 ~/error.vue 处理它(这也会减少整体包大小)。

与 Nuxt 3.5.3 相比,最小的客户端包减少了约 0.7 KB。

完全静态的服务器组件

在静态页面上使用服务端组件是可行的,但是会增加应用的载荷大小。新版本将渲染的服务端组件存储为单独的文件,在导航之前进行预加载。

这依赖于新的、更丰富的 JSON 载荷格式,所以请确保没有将 experimental.renderJsonPayloads 设置为 false 来禁用它。

更好的样式内联

如果密切监控指标,并且没有关闭 experimental.inlineSSRStyles,应该能看到更多的 CSS 内联到页面中,并且外部 CSS 文件显著减少。新版本更擅长去重全局 CSS,特别是由类似 tailwind 或 unocss 等库添加的 CSS。

动画控制

为了可以对页面/布局组件有更精细的控制,例如使用GSAP 或其他库创建自定义过渡效果,现在允许在<NuxtPage>上设置pageRef,在<NuxtLayout>上设置layoutRef。这些将被传递到底层的 DOM 元素中。

自动检测“static”预设

到目前为止,运行 nuxt generate 在每个部署提供者上产生相同的输出结果,但是在 Nuxt 3.6 中,自动启用了静态提供者预设。这意味着如果将静态构建(通过 nuxt generate 生成)部署到受支持的提供者(目前是 Vercel 和 Netlify,很快还将支持 Cloudflare 和 GitHub Pages),将使用该提供者的特殊支持对页面进行预渲染。

这意味着可以配置任何不需要服务端函数的路由规则。因此,在部署不需要运行时 SSR 的站点时,可以获得最佳效果。它还解锁了在 Vercel 上使用 Nuxt Image 的功能。

增强的类型安全性

如果在 Nuxt 3.5 中使用新的 ~/server/tsconfig.json,现在对服务端特定的 #imports 和扩展提供更好的支持。因此,当从服务端目录中的 #imports 导入时,在 Nitro 中将获得正确的导入位置的 IDE 自动完成,并且不会看到诸如 useFetch 等不可用于服务端路由的 Vue 自动导入。

现在,还可以为运行时 Nitro 钩子提供类型支持。

最后,该版本还删除了更多对象具有默认 any 类型的位置。这应该可以提高 Nuxt 中许多位置的类型安全性,其中未指定的类型会回退到 any

  • RuntimeConfig
  • PageMeta
  • NuxtApp['payload']
  • ModuleMeta

Nitro 2.5

这个版本配备了全新的 Nitro 2.5,该版本提供了流式传输的实验性支持,这也由 Nuxt 本身的一些变化启用。

模块作者的新工具

这个版本为模块作者提供了一些实用工具,以便轻松地添加类型模板并断言与另一个模块的特定版本的兼容性。此外,这个版本将最终解锁一个新的 nuxt/module-builder模式,可以提高模块作者的类型支持。

升级

建议运行以下命令进行升级:

nuxi upgrade --force

这将刷新 lock 文件,并确保从 Nuxt 依赖的其他依赖项中获取更新,特别是在 unjs 生态系统中。

Release Note:https://nuxt.com/blog/v3-6

每日打卡赢积分兑换书籍入口

  推荐阅读:
马斯克pick的天才少年:14岁成SpaceX最年轻工程师,岗位年薪百万,2岁启蒙11岁上大学
一个国外小老头,用被淘汰的编程工具,开发了一个了不起的软件
为什么编程更关注内存而很少关注CPU?
为什么有些程序员上班时总是戴着耳机?
Office 2019/2021专业增强版,正版终身授权!

文章引用微信公众号"脚本之家",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。