跳至主要內容

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 解析器、中介軟體、外掛程式等。