当前位置:首页 > 科技  > 软件

Nuxt 3.10 正式发布,看看有什么变化!

来源: 责编: 时间:2024-02-01 12:48:28 274观看
导读1 月 30 日,Nuxt.js 3.10 正式发布。该版本的更新亮点如下:预渲染时共享asyncData(实验性)SSR 安全且可访问的唯一 ID 生成扩展 app/router.options客户端 Node.js 支持更好的 cookie 响应性细粒度视图转换支持构建时路由

1 月 30 日,Nuxt.js 3.10 正式发布。该版本的更新亮点如下:

  • 预渲染时共享asyncData(实验性)
  • SSR 安全且可访问的唯一 ID 生成
  • 扩展 app/router.options
  • 客户端 Node.js 支持
  • 更好的 cookie 响应性
  • 细粒度视图转换支持
  • 构建时路由元数据
  • 构建工具模块解析

预渲染时共享 asyncData

当我们预渲染路由(即预先生成HTML内容)时,由于每个页面都是独立渲染的,如果我们没有采取适当的措施,可能会导致在每个页面中都重新获取相同的数据。这会导致不必要的API调用和可能的性能问题。n4t28资讯网——每日最新资讯28at.com

在 Nuxt 2 中,可以创建一个数据集,这个数据集可以在多个页面中被访问和重用。这样,只需要获取一次数据,就可以在多个页面中使用它。但这是需要手动设置的。n4t28资讯网——每日最新资讯28at.com

在 Nuxt 3 中,开发者可以继续使用useAsyncData和useFetch这样的钩子来获取数据。但通过 v3.10 的改进,Nuxt 3 现在能够自动处理数据的去重和缓存。这意味着,当预渲染多个页面时,如果这些页面需要相同的数据,Nuxt 3会自动确保这些数据只被获取一次,并在多个页面之间共享。这样,开发者就不需要手动设置数据的共享和缓存了。n4t28资讯网——每日最新资讯28at.com

export defineNuxtConfig({   experimental: {     sharedPrerenderData: true  } })

SSR 安全且可访问的唯一 ID 生成

在 v3.10版本中,提供了一个 useId 组合式函数,用于生成 SSR 安全的唯一 ID。这有助于创建更易于访问的应用界面。n4t28资讯网——每日最新资讯28at.com

<script setup>const emailId = useId()const passwordId = useId()</script><template>  <form>    <label :for="emailId">Email</label>    <input      :id="emailId"      name="email"      type="email"    >    <label :for="passwordId">Password</label>    <input      :id="passwordId"      name="password"      type="password"    >  </form></template>

扩展 app/router.options

如今,模块开发者可以轻松地注入自定义的router.options。借助全新的pages:routerOptions钩子,他们能实现诸多功能,如自定义 **scrollBehavior**,或动态调整路由设置。n4t28资讯网——每日最新资讯28at.com

客户端 Node.js 支持

现在,Nuxt 已实验性地支持在客户端代码中为关键的Node.js内置功能提供polyfill。这意味着,当你在编写客户端代码时,可以直接从Node.js的内置模块导入功能,就像在服务器端使用Nitro一样。但是,与服务器端不同,我们不会为你全局地注入任何内容,以避免不必要地增加你的代码包的大小。你需要根据你的需求在需要的地方进行导入。n4t28资讯网——每日最新资讯28at.com

import { Buffer } from 'node:buffer'import process from 'node:process'

或者提供自己的 polyfill,例如在 Nuxt 插件中。n4t28资讯网——每日最新资讯28at.com

import { Buffer } from 'node:buffer'import process from 'node:process'globalThis.Buffer = BufferglobalThis.process = processexport default defineNuxtPlugin({})

这应该会让那些正在使用没有适当浏览器支持的库的用户的工作变得更轻松。但是,由于增加包大小的风险,强烈建议用户如果可能的话,选择其他替代方案。n4t28资讯网——每日最新资讯28at.com

更好的 cookie 响应性

现在允许选择使用 CookieStore。如果浏览器支持,那么在更新 cookies 时,将使用 CookieStore 替代 BroadcastChannel 来响应地更新 useCookie 值。此外,还提供了一个新的函数 refreshCookie,允许手动刷新 cookie 值,例如在执行请求之后。n4t28资讯网——每日最新资讯28at.com

细粒度视图转换支持

现在,可以使用 definePageMeta 函数在每个页面上精细控制视图转换的支持。n4t28资讯网——每日最新资讯28at.com

在使用之前,请确保启用了实验性的视图转换支持功能。n4t28资讯网——每日最新资讯28at.com

export default defineNuxtConfig({  experimental: {    viewTransition: true  },  app: {    viewTransition: false  }})

并且可以选择性地启用/禁用粒度化的支持:n4t28资讯网——每日最新资讯28at.com

<script setup lang="ts">definePageMeta({  viewTransition: false})</script>

如果用户的浏览器偏好减少动画,Nuxt 将不会应用视图转换。可以将 viewTransition 设置为 'always',但最终还是要尊重用户的偏好。n4t28资讯网——每日最新资讯28at.com

构建时路由元数据

现在可以在构建时访问在 definePageMeta 中定义的路由元数据,允许模块和钩子函数修改和更改这些值。n4t28资讯网——每日最新资讯28at.com

export default defineNuxtConfig({  experimental: {    scanPageMeta: true  }})

未来的版本中,默认情况下将启用此功能,以提高性能,并支持诸如 @nuxtjs/i18n 等模块与在 definePageMeta 中设置的路由选项更深入地集成。n4t28资讯网——每日最新资讯28at.com

构建工具模块解析

Nuxt 团队最近对模块的解析方式进行了优化。通过启用 TypeScript 的构建工具解析,更准确地模拟了在 Nuxt 项目中解决子路径导入模块的实际过程。n4t28资讯网——每日最新资讯28at.com

这种“构建工具”模块解析方式受到 Vue 和 Vite 的推荐,但遗憾的是,许多包的 package.json 文件中并没有正确配置相关项。作为改进措施的一部分,我们在整个生态系统中提出了 85 个 PR,用于测试切换默认解析方式,并修复了一些问题。n4t28资讯网——每日最新资讯28at.com

可以通过以下方式来关闭此行为:n4t28资讯网——每日最新资讯28at.com

export default defineNuxtConfig({  future: {    typescriptBundlerResolution: false  }})

升级

可以通过以下方式来升级最新版本:n4t28资讯网——每日最新资讯28at.com

nuxi upgrade --force

这也将刷新 lockfile,并确保获取 Nuxt 所依赖的其他依赖项的更新,尤其是在 unjs 生态系统中的更新。n4t28资讯网——每日最新资讯28at.com

n4t28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-70418-0.htmlNuxt 3.10 正式发布,看看有什么变化!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 司空见惯的错误检测,原来还有这么多干货!

下一篇: JavaScript 新增七个方法,很实用!

标签:
  • 热门焦点
  • 一加Ace2 Pro真机揭晓 钛空灰配色质感拉满

    终于,在经过了几波预热之后,一加Ace2 Pro的外观真机图在网上出现了。还是博主数码闲聊站曝光的,这次的外观设计还是延续了一加11的方案,只是细节上有了调整,例如新加入了钛空灰
  • 让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 2天涨粉255万,又一赛道在抖音爆火

    来源:运营研究社作者 | 张知白编辑 | 杨佩汶设计 | 晏谈梦洁这个暑期,旅游赛道彻底火了:有的「地方」火了&mdash;&mdash;贵州村超旅游收入 1 个月超过 12 亿;有的「博主」火了&m
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了&ldquo;本地生活&rdquo;入口,位置较深,位于首页的&ldquo;充值中心&rdquo;内,目前主要售卖美食相关的
  • 造车两年股价跌六成,小米的估值逻辑变了吗?

    如果从小米官宣造车后的首个交易日起持有小米集团的股票,那么截至2023年上半年最后一个交易日,投资者将浮亏59.16%,同区间的恒生科技指数跌幅为52.78%
  • 华为和江淮汽车合作开发百万元问界MPV?双方回应来了

    8月1日消息,郭明錤今天在社交平台发文称,华为正在和江淮汽车合作,开发售价在100万元的问界MPV,预计在2024年第2季度量产,销量目标为上市首年交付5万辆。
  • iQOO Neo8系列今日官宣:首发天玑9200+ 全球安卓最强芯!

    在昨日举行的的联发科新一代旗舰芯片天玑9200+的发布会上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品将全球首发搭载这款当前性能最强大的移动平台
Top