以下解釋是全面理解為什么 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頁面可能的樣子:
在像Nuxt或NextJS這樣的框架中,在頁面加載之后沒有什么是靜態的,因為它會對整個頁面進行水合作用,從而注入不必要的JavaScript。
我是否說過Astro最初是一個SSG?因為現在,它不僅僅是那樣。
現在 Astro 還支持SSR,這意味著它也可以像一個簡單的后端框架一樣運作,配備有目前最優秀的模板引擎。
在一個人們容易分心、大量使用手機瀏覽互聯網的世界里:速度和頁面加載是關鍵。
Astro 是一個可以用作靜態站點生成器(SSG)或用作簡單后端渲染不需要作為SPA的頁面的Web框架。
Astro擁有目前最通用的模板引擎:
所有這些使Astro成為創建以下類型網站的最佳工具:
要創建簡單的SPA,比如帶有固定音頻播放器的網站,你可以使用Hotwire的Turbo與Astro一起使用。
現在,你甚至可以使用Astro新支持的“視圖轉換”,在頁面導航過程中保持狀態。
希望以上所有內容都讓你對Astro的創建目的以及為什么它是2023年面向基于內容的網站的最佳Web框架有了一個很好的了解。
本文鏈接:http://www.tebozhan.com/showinfo-26-12308-0.htmlAstro是2023年最好的web框架,原因如下
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com