跳到主要内容

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 一样快速启动的方式。与 Next.js 一样,Aleph 提供了开箱即用的 SSR 和 SSG,以便开发人员创建 SEO 友好的应用程序。此外,Aleph 提供了一些其他内置功能,这些功能在 Next.js 中并非默认提供,例如:

  • 热模块替换(使用 React Fast Refresh)
  • ESM 导入语法(无需 webpack)
  • TypeScript 准备

Ultra

Ultra 是 Deno 的现代流媒体 React 框架,是 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 解析器、中间件、插件等。