以下解释是全面理解为什么 Astro 在2023年成为最佳 web 框架所必需的。
在 Web 开发世界中,变化发生得非常快,尤其是对前端JavaScript开发者而言。
变化之快,以至于我们有时会忘记为谁创建网站和 web 应用:用户。
自从 BackboneJS 和 AngularJS 在2011/2012年变得非常流行后,web 就被SPA(单页应用)淹没了。
别误会,只要你想创建一个 web 应用而不是一个带有少量JavaScript交互的网站,SPA 是非常好的。
但是... 因为 AngularJS 是由Google制作的,而且使用UI框架进行 JavaScript 编程比使用jQuery 更加时髦和客观上更易于维护,人们开始为每一件事都创建 SPA。
是的,所有事情,甚至包括简单的基于内容的网站...
这当时导致了两个大问题:
SPA在客户端进行渲染,这意味着当像Google这样的搜索引擎爬虫来索引内容时,它们什么也看不到。
于是,解决方案出现了:SSR(服务器端渲染)。
基本上,这意味着在后端执行前端代码以进行初始渲染。
这样做的问题是:我们需要一个NodeJS服务器,因为只有NodeJS后端才能执行客户端语言JavaScript。
如果有一个基于内容的网站,这是很多额外的开销。
于是,针对这些网站找到了解决方案:SSG(静态站点生成器)和预渲染。
SSG在SPA成为一种事物之前就已经存在,但在上述问题出现后,它们变得越来越流行。
但是... 它们也有两个大问题:
现实是:有时你只需要一点点 JavaScript 来进行微互动。而且,甚至不是每个页面都需要!
这就是 Astro 的用武之地。
Astro 最初是一个基于 JavaScript 语言的静态站点生成器(SSG),但默认情况下在客户端不生成任何JavaScript。
它在构建时执行你的JS代码,就像服务器端渲染(SSR)框架一样,但它不进行水合作用(hydration
),因为大多数基于内容的网站不需要 JS。
但是当你需要JS时,你该怎么办?
你可以像旧时一样使用JavaScript,通过命令式DOM操作,或者...
使用像AlpineJS或Vue-petite这样令人惊叹的东西,它们是即插即用的,并且只发送少量的JS。
对于高级场景或当你需要重用其他项目中拥有的UI组件时,Astro创建了:Islands(岛屿)。
Astro Islands是独立的组件,你可以从Vue、React、Svelte甚至更多的前端框架(见结论部分)中带来!
这是他们能做的最方便的事情。
这些组件将被单独渲染,并注入到最终的HTML中。要么是静态的(没有水合作用),要么是动态的(带有JS)。
下面是一个使用 Astro 的最终HTML页面可能的样子:
本文链接:http://www.28at.com/showinfo-26-12308-0.htmlAstro是2023年最好的web框架,原因如下
声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。