首先呢,我先上一段引文來讓文章看起來高大上一點
A modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup
— Mathias Biilmann (CEO & Co-founder of Netlify)
JAMstack 說白了就是一種構建網站的方法,它拉近了靜態網站與 SSR 之間的功能差距,同時保持了靜態網站高性能、低成本、高安全性的關鍵優勢,同時也保有了非常好的開發者體驗。
而 JAMstack 的 JAM 就是 JavaScript、API 和 Markup 的簡稱。
我在上面提到了JAMstack 的架構核心是 JavaScript、API 和 Markup ,但這並不代表要集滿三大要素才能稱為 JAMstack 喔。
因為 JAMstack 不是一種特定的技術,更像是一種架構模式,但這個模式中最關鍵的就是不使用 Apache 或 Express 之類的 Web Server。
因為不管你是用預渲染、靜態網站生成器甚至是工人智慧親手打造,一個使用 JAMstack 架構的網站,一定都已經將所有網站的內容預先產製好了,因此當使用者連線時,根本就不需要執行 Web Server 來做頁面的運算。
其實簡單來說,我認為主要就是下面的幾種原因:
高性能
因為當網站已經在部署的時候就都完成了,省去的伺服器運算、資料庫查詢時間都是對使用者體驗的提升,而且因為內容都是靜態的,還可以透過 CDN 來提供更快的連線速度。
高安全性
當你將單純的靜態網站部署到專業的網站託管服務,各種可能需要的 API 也都利用第三方服務來架構,那你可以被攻擊的突破口不就大幅度地縮小了嗎,畢竟資安這檔事還是交給專業的來吧。
超便宜。
這個答案有沒有很簡單很暴力啊?靜態網站的託管服務真的超便宜,甚至有一大堆都是免費的高優質選項呢!
如果真要說什麼時候不適合 JAMstack 呢?大概就是客戶有錢的時候吧。
其實現在已經有許多的工具可以幫我們架設出 JAMstack 所需要的網站結構,而且因為不限定特定的技術,所以產出方法也就有百百種,本系列採用的方法主要是使用 VuePress 這個靜態網站生成器。
而為什麼選擇 VuePress 的原因,以及它到底有什麼特色與優勢,就請見下回分曉啦!