Astro框架
#javascript #前端 #发展 #astro

Astro是一种通过构建多页应用程序和运输而没有JavaScript的运输来使事情变得更容易的工具。意思是,只有HTML文件将发送到浏览器,而将零js零用于加载在浏览器上并减慢您的速度。

Astro简介

Astro而不是重型交互式应用程序,旨在针对基于内容的网站。 Astro是一个非常不错的选择,就像我们想发布一些内容一样。

这是一种服务器优先,它尽可能多地通过客户端呈现服务器端渲染。

Astro是为创建具有很多内容的网页而创建的。这涵盖了大多数电子商务网站,博客,发布网站,文档网站和博客。

在开始审查之前,我们需要了解至关重要的事情。 Web应用程序和网站之间的区别;

  • 网站(与Web应用程序相反)缺乏动态内容更新,因此是静态的。访问者无法与他们互动或将消息发送回网站。
  • WebApps:Web应用程序是具有交互式功能和功能的网站。 Web应用程序是通过Web浏览器访问的计算机软件,并经常链接到数据库,为用户提供自定义的交互式体验。

这样说,您应该知道,如果您要构建Web应用程序,Astro可能不是项目的理想选择。

对于以Web应用程序为重点的项目,在Next.js框架上探索一个选项将在您的情况下更合适。

Astro团队确保我们可以利用我们已经熟悉的任何喜欢的UI组件语言。诸如Svelte,React,Vue,Lit,Solid等之类的框架与在Astro Projects中创建新的UI组件兼容。

所有Web开发人员都应该能够使用Astro,这就是Astro背后的Ming团队。无论您以前的网络开发专业知识或技能水平,Astro都是易于使用的方法。

部分水合,这是什么?

部分水合的概念使开发人员能够确定已加载哪些方面以及何时提供快速交互性。这是通过仅在需要使用称为“ Island Architecture”的东西的地方放置一些客户端JS来完成的。

部分水合绝对是明智而实用的策略。我们的网页最初以纯HTML从服务器发送到客户端。默认情况下,JavaScript不会发货。

但是,我们知道JavaScript是使我们的页面交互的原因。这是作为加载JavaScript的过程进行水合发挥作用的地方。

水合很酷,只有在我们需要的时候才到位,例如,如果我们的页面从不需要互动的内容开始,则不需要JavaScript。

所以我们什么也没加载,但是如果我们有一个需要与用户相互作用的形式接触时向下滚动到页脚,则在这里进行水合来与表单所需的JavaScript进行水合。

Astro如何实施部分水合?

Astro的指导原理是建立浏览器可以自行水合的交互性岛。 Astro Island是解决方案。

我们可以通过独立处理每个组件(Island)来优化页面如何加载JavaScript。

我们将页面分为多个组件,每个元素都有自己的情况。图像旋转木马需要JavaScript,文本或图像不需要它,评论部分需要JavaScript等。

在Astro中,我们能够告诉组件如何渲染,由我们选择,我们可以选择该组件的JavaScript代码应在页面的初始负载中呈现,或者可以补充组件使用JavaScript完成第一个负载后,我们也可以更精确地说,只有在用户可见的情况下,该组件才能水合,这是我们可以选择FO渲染的一些情况。

岛屿建筑的优点

Image description

岛屿设计结合了几种渲染方法的原理,包括服务器端渲染,静态场地生成和部分水合。

以下是整合岛屿的主要优点:

  • 该模式提供了基于组件的架构的所有好处,例如可重复性和可维护性。
  • 通过减少发送给客户的JavaScript代码的数量来提高性能。交付的代码仅包含交互式组件所需的脚本,该脚本大大低于为完整页面构建虚拟DOM所需的脚本并重新补充了所有页面的元素。
  • 网站非常友好,因为所有静态内容均在服务器上呈现。
  • 使用标准静态HTML链接到达其他页面有助于增加网站的可访问性。

Astro是MPA还是水疗中心?

Astro的独特之处在于它既是静态站点的生成器,又努力将JavaScript尽可能地排除在最终版本之外。它还更喜欢多页应用程序而不是单页应用程序(SPA)。

可能以多种方式构建网站。由Angular和React推广的单页应用程序(SPA)概念大多已超过MPA,但是多页应用程序(MPA)由于我们使用SPA运输到浏览器的JavaScript量而卷土重来。

快速启动对于许多网站,对于许多网站和几乎没有交互性的应用程序,诸如Angular之类的客户型框架的许多网站和应用程序至关重要。

这一代的MPA与早期不同。 Astro采用该岛的建筑采用基于组件的方法。

结论

该领域的许多专家都认为,Astro可能可能完全改变网站的构建方式。

默认情况下,Astro构建没有客户端JavaScript的网站将对性能产生重大影响,因为它删除了所有未使用的JavaScript代码。
默认情况下,用零客户端JavaScript生成每个网站