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 解析器、中间件、插件等。