Astro 4.0 Beta 版发布

作者
Matthew Phillips

今天,我们发布了 Astro 4 的首个 Beta 版本!喜欢尝鲜的朋友可以安装新的 Beta 版,查看我们正在进行的升级文档,并将您发现的任何错误报告给 Astro Discord

Astro 4 中值得期待的内容

我们发布 Astro 4 是为了与我们的内部构建工具 Vite 保持同步。Astro 4 包含了最新版本的 Vite 5,该版本已于上个月发布。

由于 Vite 5 是一个较小的主要版本更新,因此大多数项目在升级到 Astro 4 时,代码只需进行极少的更改,甚至无需更改。

此外,在 Astro 4 中,我们计划将过去几个月一直在开发的一些新功能从实验性状态转为稳定版。敬请期待更多内容!

试用 Beta 版

您可以通过运行我们新的 @astrojs/upgrade 包在现有应用中试用 Beta 版。这个 CLI 工具将自动安装正确版本的 Astro 以及您已安装的任何官方 Astro 集成。

npx @astrojs/upgrade beta
pnpm dlx @astrojs/upgrade beta
yarn dlx @astrojs/upgrade beta

或者,您可以手动安装 astro@beta 包。请务必同时更新您已安装的任何 @astrojs/* 集成!

npm install astro@beta
pnpm install astro@beta
yarn install astro@beta

如果启动一个新项目,您也可以通过运行以下命令来试用 Beta 版:

npm create astro@latest -- --ref next

再次提醒,请替换为您喜欢的包管理器。我们尚未完成升级指南,但您已经可以在Astro 4.0 升级指南拉取请求中找到最重要的更改。您还可以关注其相关 issue,该 issue 正在跟踪所有破坏性更改。

Astro 3.6

此外,我们最近发布了 Astro 3.6,该版本在 <ViewTransitions /> 路由中包含了新的事件,并在数据受限场景下为 prefetch 提供了回退功能。

视图过渡事件

Astro 3.6 在 <ViewTransitions /> 路由的生命周期中添加了这三个新事件:

astro:before-preparation准备步骤之前立即运行,该步骤会加载新页面的内容。这可用于覆盖加载新页面的行为,例如显示加载指示器。

astro:after-preparation 在内容加载后运行。这可用于停止加载指示器(如果它是作为 astro:before-preparation 的一部分添加的)。

astro:before-swap交换步骤之前立即运行,该步骤会将旧页面的内容替换为新页面的内容。此事件包含 event.newDocument 属性,这是一个您可以修改的 Document 对象。此事件的一个用例是,如果您使用 localStorage 存储亮/暗模式偏好设置,则可以设置暗模式类名。

查看此演示,了解使用新事件可以实现的功能,并参阅文档获取关于所有五个生命周期事件的更多信息。

预取回退

以前,当用户处于慢速连接或启用了数据节省偏好设置时,预取会完全禁用。在 3.6 中,我们将预取策略更改为在 tap(即用户开始点击链接但尚未释放时)时发生。这使我们在获取下一页时能够稍微抢占先机,但仅限于我们非常确定用户打算点击的情况。

错误修复

此版本还包括其他错误修复。请查看发布说明以了解更多信息。