跳至主要内容

Web 框架

最有可能的是,如果您正在构建更复杂的应用程序,您将通过 Web 框架与 Deno 进行交互。Deno 支持两种类型的 Web 框架

  • Node.js 原生框架/工具/库。一些最流行的工具,例如 esbuild,明确支持 Node.js 和 Deno。这里的缺点是您可能无法获得最佳体验或性能。
  • Deno 原生框架/工具/库。我们将在下面介绍其中的一些。

Deno 原生框架

Fresh

Fresh 是 Deno 最流行的 Web 框架。它使用一种模型,默认情况下不会向客户端发送任何 JavaScript 代码。大部分渲染工作都在服务器上完成,客户端只负责重新渲染少量交互式 岛屿。这意味着开发者需要明确选择对特定组件进行客户端渲染。

Aleph

Aleph.js 是 Deno 的第二大流行的 Web 框架。它可以让你像 Create-React-App 一样快速开始使用 React。与 Next.js 一样,Aleph 提供开箱即用的 SSR 和 SSG,以便开发者创建 SEO 友好的应用程序。此外,Aleph 还提供了一些 Next.js 中没有的内置功能,例如

  • 热重载(使用 React Fast Refresh)
  • ESM 导入语法(无需 webpack)
  • TypeScript 就绪

Ultra

Ultra 是一个现代的流式 React 框架,用于 Deno,它是 Aleph 的另一种选择。它是一种使用 React 构建动态媒体丰富网站的方式,类似于 Next.js。

Deno 本身支持开箱即用的 JSX 和 TypeScript(因此 Ultra 也支持),但它们无法在浏览器中运行。Ultra 接管了将 JSX 和 TypeScript 转换为普通 JavaScript 的任务。

Ultra 的其他亮点包括

  • 用 Deno 编写。
  • 由导入映射提供支持。
  • 100% esm。
  • 在开发和生产中都使用导入映射,这极大地简化了工具链 - 你不必处理大量的捆绑和转译。
  • 源代码在生产中被发布,类似于它的编写方式。
  • 导入、导出,就像它们在开发中一样工作。

Lume

Lume 是一个用于 Deno 的静态网站生成器,它受到其他静态网站生成器(如 Jekyll 或 Eleventy)的启发。它易于使用和配置,同时又非常灵活。亮点包括

  • 支持多种文件格式,如 Markdown、YAML、JavaScript、TypeScript、JSX、Nunjucks。
  • 你可以连接任何处理器来转换资产,例如用于 CSS 的 sass 或 postcss。
  • 无需在 node_modules 中安装数千个包或复杂的捆绑器。

Oak

Oak 是一个用于 Deno 的 Web 应用程序框架,类似于 Node.js 中的 Express。

作为中间件框架,Oak 是您的前端应用程序与潜在数据库或其他数据源(例如 REST API、GraphQL API)之间的粘合剂。为了让您了解,以下是一些用于构建客户端-服务器架构的常见技术栈列表。

  • React.js (前端) + Oak (后端) + PostgreSQL (数据库)
  • Vue.js (前端) + Oak (后端) + MongoDB (数据库)
  • Angular.js (前端) + Oak (后端) + Neo4j (数据库)

Oak 提供了比原生 Deno HTTP 服务器更多的功能,包括基本路由器、JSON 解析器、中间件、插件等。