Astro 3.0 闪亮登场,让你轻松构建更快速、更流畅的前端应用

e7c3443cca6836157be247ca2dfef302.jpeg

网站前端开发的领域不断演进,随着Astro 3.0的发布,它正在迈出巨大的一步。Astro 3.0引入了突破性的功能和增强功能,承诺改变我们构建和体验网络应用程序的方式。在本文中,我们将探讨Astro 3.0的主要亮点以及如何赋予开发人员创建更快、更引人入胜和视觉上令人惊叹的网络体验的能力。

视图过渡:提升页面导航

28776423744b34a9aea703055e5cd4d9.jpeg

Astro 3.0的杰出功能之一是其支持视图过渡API(View Transitions API)。在历史上,平滑且类似于本机的页面过渡是与单页面应用程序(SPA)相关联的,需要复杂的JavaScript设置。Astro 3.0通过使这些过渡对每个人都可访问,而无需复杂的JavaScript设置,改变了这一情况。

使用视图过渡,您可以在一个页面到另一个页面时无缝地将元素变形,淡入淡出内容以获得更愉悦的导航体验,滑动内容以增加吸引力,甚至在页面之间保持常见的UI元素,所有这些都无需繁重的JavaScript。集成非常简单,通常只需要两行代码。其结果是以前仅保留给SPA的视觉吸引力用户旅程。

自从Astro 2.9以来,Astro用户一直很幸运地提前访问视图过渡。社区的实验和反馈对于优化这一功能至关重要,确保其达到了最高的质量和性能标准。由Astro开发人员创建的演示展示了可能性,展示了感觉像本机客户端体验的应用程序,但实际上是由Astro 3.0和新的视图过渡API带到生活的服务器渲染的HTML。

此外,Astro 3.0为支持较旧的浏览器提供了额外的支持,通过自动向您的页面添加的小型,约3KB的脚本来实现一致的用户体验。

---
// src/pages/index.astro
// 注意:确保将 "<ViewTransitions />" 组件添加到其他页面,而不仅仅是一个页面。
import {ViewTransitions} from 'astro:transitions';
---
<head><title>My View Transition Demo</title><ViewTransitions />
</head>
<body><!-- -->
</body>

3a96a556a6cb40c3e62b974a9643382b.gif

ef193382f72c557ce9d0761ac8873b3a.gif

34824fd4f64f5e9994ccf71f101054b7.gif

更快的渲染性能:性能是核心

04974422e7164fad59c6fda2a92f1526.jpeg

性能是Astro 3.0的核心。渲染性能得到了显著提升,与Astro 2.9相比,大多数组件的渲染速度提高了高达30%。在更复杂的基准测试中,这一改进可能达到惊人的75%。

这种性能飞跃是Astro 2.10开始的精心重构工作的结果,并在Astro 3.0中达到了顶峰。从构建管道的关键路径中剔除了不必要的代码,并在可能的地方进行了优化。消除了冗余的生成器和异步代码是实现这一印象深刻的速度提升的关键策略之一。

图像优化:简单与效率相结合

63f3a71efdf92eb8097e5e3a395cf9c6.jpeg

在Astro 3.0中,图像优化现已稳定,并可在所有项目中使用。引入内置的<Image>组件简化了导入和放置图像在网页上的过程。Astro在构建过程中会自动检测和优化每个图像,确保性能最佳。

Astro还负责为最终渲染的图像标记添加了推断的宽度和高度属性,以防止布局移位并增强累积布局移位(CLS)保护。这使得在Astro中处理图像变得比以往更加流畅和高效。

---
// Import the <Image /> component
import { Image } from "astro:assets"
// Import a reference to the image itself
import myImage from "../assets/penguin.png"
---<Image src={myImage} alt="A very cool penguin!" />

这部分代码的作用是导入 <Image /> 组件以及图像的引用,然后将该图像显示在页面上。在此之前,已经实现了一些重要的改进,包括:

  • 完全支持Vercel的内置图像服务。通过将 imageService: true 添加到您的Vercel集成配置中,您可以在其全球CDN上看到优化后的生产图像。

  • 迁移到Sharp作为我们的新默认优化库。Sharp取代了之前的默认库 @squoosh/lib,后者已不再维护。

  • 支持优化远程图像。内容团队可以继续使用其现有的工作流程和CMS工具来管理图像。

服务器端渲染(SSR)增强功能

67a61386866df8599294e22d23234e7f.jpeg

Astro与Vercel的合作带来了对Astro 3.0的服务器端渲染(SSR)的显著增强。这些增强功能使所有用户受益,无论他们选择的托管平台如何。

  • 按路由代码拆分:服务器端用户现在可以通过为网站的每个路由创建较小的个别服务器文件来减少每个请求上不必要的代码加载,从而获得更好的性能。

  • 边缘中间件:Astro现在可以捆绑您的中间件以在边缘部署,确保您的应用程序尽可能靠近用户运行。

  • 主机自定义:Astro的新API帮助用户了解并利用他们选择的托管提供商的独特功能,从而做出更明智的开发决策,顺利的生产体验。

JSX的HMR增强功能:轻松开发

b236fbe7cddf5d9a43c1c53f8db02e30.jpeg

Astro 3.0引入了React Fast Refresh,显著改进了Hot Module Reloading(HMR)和整体开发服务器的稳定性。此功能允许本地更改智能地推送到浏览器,而无需进行全页面刷新,从而保持UI的当前状态。这不仅加快了开发速度,还消除了在更新UI时频繁页面状态重置的困扰。

ecd4d2ce2b854e1d52a30beccb85cc1d.gif

优化的构建输出:简化和高效

Astro 3.0不仅关注性能,还着眼于整体响应时间。通过自动HTML缩小、更清晰的组件ID和自动CSS内联等一系列优化措施,Astro 3.0的构建输出在各方面都变得更加高效和流畅。这意味着您的网站将更快地加载,用户将获得更迅速的响应,从而提升了整体用户体验。

立即尝试Astro 3.0

Astro 3.0现已在npm上提供。要开始使用,请访问 astro.new 在您的浏览器中尝试Astro 3.0,或者在终端中运行以下命令以创建新项目:

npm install -g create-astro
create-astro my-project
cd my-project
npm start

对于现有项目,您可以在 v3.0升级指南 中找到详细的升级指导,以获取每个更改的详细信息和个别的升级指导。

https://docs.astro.build/en/guides/upgrade-to/v3/

总之,Astro 3.0标志着网站前端开发的一个重要里程碑。它的创新功能、改进的性能和开发人员友好的增强功能使网站开发人员能够轻松创建出色的用户体验。无论您是构建个人博客还是复杂的网站应用程序,Astro 3.0都将重新定义您对网站开发的方法。深入了解,探索可能性,并通过Astro 3.0将您的网站应用项目提升到新的高度!

参考文档:
https://astro.build/blog/astro-3/

结束

由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。

粉丝福利

分享一个很潮的个人主页源码,助力你打造个人品牌(html+css+jq)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/115749.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

直播平台源码弹性云托管技术:稳定直播与降低成本的利器

在当今的互联网时代&#xff0c;直播平台源码层出不穷&#xff0c;直播平台源码不仅可以让人们获取最新的资讯、查找资料等信息获取&#xff0c;还能让人们在其中观看短视频、直播、与其他人聊天等互动放松&#xff0c;直播平台源码的受欢迎与平台人数的增加使得人们在选择直播…

【juc】读写锁ReentrantReadWriteLock

目录 一、说明二、读读不互斥2.1 代码示例2.2 截图示例 三、读写互斥3.1 代码示例3.2 截图示例 四、写写互斥4.1 代码示例4.2 截图示例 五、注意事项5.2.1 代码示例5.2.2 截图示例 一、说明 1.当读操作远远高于写操作时&#xff0c;使用读写锁让读读可以并发&#xff0c;来提高…

关于linux openssl的自签证书认证与nginx配置

自签文档链接 重点注意这块&#xff0c;不能写一样的&#xff0c;要是一样的话登录界面锁会报不安全 域名这块跟最后发布的一致 nginx配置的话 server {listen 443 ssl; //ssl 说明为https 默认端口为443server_name www.skyys.com; //跟openssl设置的域名保持一致s…

ffmpeg把RTSP流分段录制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音视频开发的难度直接就降一个维度啊

比如&#xff0c;原来我们要用ffmpeg录一段RTSP视频流转成MP4&#xff0c;我们有两种方案&#xff1a; 方案一&#xff1a;可以使用以下命令将rtsp流分段存储为mp4文件 ffmpeg -i rtsp://example.com/stream -vcodec copy -acodec aac -f segment -segment_time 3600 -reset_t…

CSS中如何隐藏元素但保留其占位空间(display:none vs visibility:hidden)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ display: none;⭐ visibility: hidden;⭐ 如何选择⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为…

QT DAY 2

window.cpp #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//this->resize(430,330);this->resize(QSize(800,600));// this…

Spring Cloud + Spring Boot 项目搭建结构层次示例讲解

Spring Cloud Spring Boot 项目搭建结构层次示例讲解 Spring Cloud 项目搭建结构层次示例Spring Cloud示例&#xff1a; Spring Boot 项目搭建结构层次讲解Spring Boot 项目通常按照一种常见的架构模式组织&#xff0c;可以分为以下几个主要层次&#xff1a;当构建一个 Spring…

【Android-Flutter】我的Flutter开发之旅

目录: 0、文档&#xff1a;1、在Windows上搭建Flutter开发环境&#xff08;1&#xff09;[使用中国镜像(❌详细看官方文档)](https://docs.flutter.dev/community/china)&#xff08;2&#xff09;[下载最新版Flutter SDK&#xff08;已包含Dart&#xff09;](https://docs.flu…

【rust/egui】(五)看看template的app.rs:SidePanel、CentralPanel以及heading

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 SidePanel 侧边栏&#xff0c;如下图 …

哈希表与有序表

哈希表与有序表 Set结构 key Map结构 key-value 哈希表 哈希表的时间复杂度都是常数项级别的&#xff0c;但常数较大 增删改查的时间都是常数级别的&#xff0c;与数据量无关 当哈希表存储的值是基础数据类型&#xff08;Integer - int&#xff09;&#xff0c;哈希表中内…

“MyBatis中的关联关系配置与多表查询“

目录 引言一、一对多关系配置二、一对一关系配置三、多对多关系配置总结 引言 在数据库应用开发中&#xff0c;经常会遇到需要查询多个表之间的关联关系的情况。MyBatis是一个流行的Java持久层框架&#xff0c;它提供了灵活的配置方式来处理多表查询中的一对多、一对一和多对多…

DVWA靶场搭建

目录 配置环境&#xff1a; 1、将下载好的压缩包放置php的WWW根目录下 2、改文件配置 3、查看mysql用户名和密码&#xff0c;将其修改值靶场配置文件中 4、完成后我们就可以在浏览器输入127.0.0.1/dvwa进入靶场 测试XSS注入&#xff1a; 配置环境&#xff1a; githhub下…

DEAP库文档教程一

DEAP是一个新的用于快速验证和测试新想法的演化计算框架。它致力于直接地构建算法和数据结构的简单化。它可以很好地应用在并行机制中。下面的文档将会展示许多关键概念以及构建你自己的演化算法时的一些特征。 第一步 1、总览(从这里开始) 2、安装 3、如何进入端口?(porting…

新型安卓恶意软件使用Protobuf协议窃取用户数据

近日有研究人员发现&#xff0c;MMRat新型安卓银行恶意软件利用protobuf 数据序列化这种罕见的通信方法入侵设备窃取数据。 趋势科技最早是在2023年6月底首次发现了MMRat&#xff0c;它主要针对东南亚用户&#xff0c;在VirusTotal等反病毒扫描服务中一直未被发现。 虽然研究…

浪潮云海护航省联社金融上云,“一云多芯”赋能数字农业

农村金融是现代金融体系的重要组成部分&#xff0c;是农业农村发展的重要支撑力量&#xff0c;而统管全省农商行及农信社的省级农村信用社联合社&#xff08;以下简称&#xff1a;省联社&#xff09;在我国金融系统中占据着举足轻重的地位。省联社通常采用“大平台小法人”的发…

每日一题(复制带随机指针的链表)

每日一题&#xff08;复制带随机指针的链表&#xff09; 138. 复制带随机指针的链表 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 由于每个链表还包含了一个random节点指向了链表中的随机节点&#xff0c;所以并不能直接照搬复制原链表。首先想到的暴力思路是复…

Docker构建Springboot项目,并发布测试

把SpringBoot项目打包成Docker镜像有两种方案&#xff1a; 全自动化&#xff1a;先打好docker镜像仓库&#xff0c;然后在项目的maven配置中配置好仓库的地址&#xff0c;在项目里配置好Dockerfile文件&#xff0c;这样可以直接在idea中打包好后自动上传到镜像仓库&#xff0c…

多因素认证与身份验证:分析不同类型的多因素认证方法,介绍如何在访问控制中使用身份验证以增强安全性

随着数字化时代的到来&#xff0c;信息安全问题变得愈发重要。在网络世界中&#xff0c;用户的身份往往是保护敏感数据和系统免受未经授权访问的第一道防线。单一的密码已经不再足够&#xff0c;多因素认证&#xff08;MFA&#xff09;应运而生&#xff0c;成为提升身份验证安全…

嵌入式学习笔记(1)ARM的编程模式和7种工作模式

ARM提供的指令集 ARM态-ARM指令集&#xff08;32-bit&#xff09; Thumb态-Thumb指令集&#xff08;16-bit&#xff09; Thumb2态-Thumb2指令集&#xff08;16 & 32 bit&#xff09; Thumb指令集是对ARM指令集的一个子集重新编码得到的&#xff0c;指令长度为16位。通常在…

利用MarkovJunior方法生成迷宫和图形的MATLAB演示[迷宫生成、贪吃蛇、地图生成、图案生成]

利用MarkovJunior方法生成迷宫和图形的MATLAB演示[迷宫生成、贪吃蛇、地图生成、图案生成] 0 前言1 介绍MarkovJunior2 迷宫生成2.1 深度优先迷宫生成2.2 广度优先迷宫生成 3 其它生成图案3.1 地牢地图3.2 贪吃蛇3.3 植物花 惯例声明&#xff1a;本人没有相关的工程应用经验&am…