Web 框架
如果要建置更複雜的應用程式,您很可能會透過網路架構與 Deno 互動。Deno 支援兩種網路架構
- Node.js 原生架構/工具/函式庫。一些最受歡迎的工具,例如 esbuild,明確支援 Node.js 和 Deno。此處的缺點是您可能無法獲得最佳體驗或效能。
- Deno 原生架構/工具/函式庫。我們在下方提供其中一些。
Deno 原生架構
Fresh
Fresh 是 Deno 最受歡迎的網路架構。它使用一種模型,您預設不會將 JavaScript 傳送給客戶端。大部分的呈現都在伺服器上完成,而客戶端僅負責重新呈現小型 互動區塊。這表示開發人員會明確選擇特定元件的客戶端側呈現。
Aleph
Aleph.js 是 Deno 第二受歡迎的網路架構。它提供與 Create-React-App 相同的 React 快速入門。與 Next.js 相同,Aleph 提供開箱即用的 SSR 和 SSG,以利開發人員建立 SEO 友善的應用程式。此外,Aleph 提供一些 Next.js 開箱即用時沒有的其他內建功能,例如
- 熱重載 (使用 React 快速更新)
- ESM 匯入語法 (不需要 webpack)
- TypeScript-Readys
Ultra
Ultra 是 Deno 的現代串流 React 框架,是 Aleph 的另一種替代方案。它是一種使用 React 建置動態多媒體網站的方式,類似於 Next.js。
Deno 本身支援 JSX 和 TypeScript(因此 Ultra 也支援),但它們無法在瀏覽器中運作。Ultra 接手將 JSX 和 TypeScript 轉譯成一般 JavaScript 的任務。
Ultra 的其他亮點包括
- 以 Deno 撰寫。
- 由 import 地圖提供支援。
- 100% esm。
- 在開發和生產中都使用 import 地圖,這大幅簡化了工具鏈 - 您不必處理大量的綑綁和轉譯。
- 原始碼在生產中出貨,類似於撰寫方式。
- import、export,在開發中運作的方式。
Lume
Lume 是 Deno 的靜態網站產生器,靈感來自其他靜態網站產生器,例如 Jekyll 或 Eleventy。它易於使用和設定,同時又非常靈活。亮點包括
- 支援多種檔案格式,例如 Markdown、YAML、JavaScript、TypeScript、JSX、Nunjucks。
- 您可以掛接任何處理器來轉換資產,例如 sass 或 postcss for CSS。
- 無需在
node_modules
或複雜的綑綁器中安裝數千個套件。
Oak
Oak 是 Deno 的網頁應用程式框架,類似於 Node.js 中的 Express。
作為一個中間件框架,Oak 是您的前端應用程式和潛在資料庫或其他資料來源(例如 REST API、GraphQL API)之間的黏合劑。僅供您參考,以下是建置客戶端伺服器架構的常見技術堆疊清單
- React.js(前端)+ Oak(後端)+ PostgreSQL(資料庫)
- Vue.js (前端) + Oak (後端) + MongoDB (資料庫)
- Angular.js (前端) + Oak (後端) + Neo4j (資料庫)
Oak 提供了比原生 Deno HTTP 伺服器更多的附加功能,包括基本路由器、JSON 解析器、中介軟體、外掛程式等。