最近,Astro 团队已经发布了 1.0 版,并指出已经使用该 Web 框架构建了一些部署的机构,包括 Google 的 Firebase、Trivago、The Guardian 和 IKEA等知名公司。
据团队称,Astro 已经发展了16 个月。不寻常的是,它既是静态站点生成器,又旨在尽可能从最终构建中删除 JavaScript。它还支持多页应用程序而不是单页应用程序 (SPA)。
Astro 项目主要针对以内容为中心的网站,而不是 Web 应用程序。
“SPA模式有它的好处。然而这些是以额外的复杂性和性能权衡为代价的,”它的文档中这样声称。
通常,SPA 通过 JavaScript 检索内容,因此,虽然初始页面加载速度很快,但在页面完全呈现之前需要客户端处理和对微服务的进一步调用。Astro 团队表示,“SPA 是处理复杂、多页面状态管理的网站的卓越架构”,这要归功于容易的状态管理和跨用户感知为多个页面共享内存。
虽然 Atro 在某些方面听起来像是对 PHP 方法的回归,它推动了 WordPress 和 Drupal 等内容管理系统,或 ASP.NET 等其他传统框架。
“但使用 Astro,一切仍然只是 HTML、CSS 和 JavaScript(或 TypeScript ,如果你愿意的话),”团队说。声称“与使用最流行的 React Web 框架构建的相同网站相比,Astro 网站的加载速度可以提高 40%,而 JavaScript 脚本将减少 90%。”
Astro 有自己的 UI 语言,存储在扩展名为 .astro 的文件中,在构建项目时会编译为 HTML。一个关键特性是能够使用来自一个或多个其他它框架的组件,包括 React、Preact、Svelte、Vue 等。
默认情况下,这些组件是预先构建的并呈现为静态 HTML,但也可以使用在客户端呈现它们的指令。这里使用了 Astro Islands 的概念,其中IsLands的意思是“在 HTML 的其它静态页面上的交互UI 组件”。
这个想法不是由 Astro 团队发明的,但它现在是主要的实现之一。“IsLands是 Astro 默认快速性能的秘诀,”在文档中这样声称。
Astro 由 Netlify 赞助,毫无疑问,它希望 Astro 的实施最终能在其服务器上运行。