跳到主要内容

Server

利用 Nuxt 的服务端框架构建全栈应用。你可以从数据库或其他服务端获取数据、创建 API,甚至生成像站点地图或 RSS 这样的静态服务端内容——全部来自同一个代码库。

阅读更多

由 Nitro 提供动力(Powered by Nitro)

Nuxt 的服务端是 Nitro。它最初是为 Nuxt 创建的,但如今已成为 UnJS 的一部分,并向其他框架开放——甚至可以单独使用。

使用 Nitro 为 Nuxt 带来超能力:

  • 完全掌控应用的服务端部分
  • 在任何提供商上的通用部署(许多开箱即用)
  • 混合渲染(hybrid rendering)

Nitro 内部使用 h3,一个为高性能与可移植性而构建的最小 H(TTP) 框架。

服务端端点与中间件(Server Endpoints & Middleware)

你可以轻松管理 Nuxt 应用的服务端专用部分,从 API 端点到中间件。

端点和中间件都可以像这样定义:

server/api/test.ts
import { defineEventHandler } from 'nitro/h3'

export default defineEventHandler(async (event) => {
  // ... 在这里做任何你想做的事
})

而且你可以直接返回 textjsonhtml 甚至 stream(流)。

开箱即用,它支持热模块替换自动导入,就像你 Nuxt 应用的其他部分一样。

阅读更多

通用部署(Universal Deployment)

Nitro 提供了将 Nuxt 应用部署到任何地方的能力,从裸金属服务器到边缘网络,启动时间仅需几毫秒。太快了!

阅读更多

有超过 15 个 preset 可用于为不同的云提供商和服务器构建你的 Nuxt 应用,包括:

或者其他运行时:

Deno

Bun

阅读更多

混合渲染(Hybrid Rendering)

Nitro 有一个强大的特性叫做 routeRules,可以让你定义一组规则来自定义 Nuxt 应用每个路由的渲染方式(以及更多)。

nuxt.config.ts
export default defineNuxtConfig({
  routeRules: {
    // 出于 SEO 目的在构建时生成
    '/': { prerender: true },
    // 缓存 1 小时
    '/api/*': { cache: { maxAge: 60 * 60 } },
    // 重定向以避免 404
    '/old-page': {
      redirect: { to: '/new-page', status: 302 },
    },
    // ...
  },
})
阅读更多

了解所有可用于自定义路由渲染模式的 route rules。 :::

此外,还有一些 route rules(例如 ssrappMiddlewarenoScripts)是 Nuxt 特有的,用于改变将页面渲染为 HTML 时的行为。

一些 route rules(appMiddlewareredirectprerender)也会影响客户端行为。

Nitro 用于构建应用以进行服务端渲染,以及预渲染。

阅读更多