Nuxt 的服务器是 Nitro。它最初为 Nuxt 创建,但现在是 UnJS 的一部分,并向其他框架开放 —— 甚至可以单独使用。
使用 Nitro 为 Nuxt 带来强大功能:
Nitro 在内部使用 h3,这是一个为高性能和可移植性构建的精简 H(TTP) 框架。
您可以轻松管理 Nuxt 应用的仅服务器部分,从 API 端点到中间件。
端点和中间件都可以这样定义:
export default defineEventHandler(async (event) => {
// ... Do whatever you want here
})
并且您可以直接返回 text、json、html 或甚至一个 stream。
开箱即用,它像 Nuxt 应用的其他部分一样支持 热模块替换 和 自动导入。
Nitro 提供了将 Nuxt 应用部署到任何地方的能力,从裸金属服务器到边缘网络,启动时间仅为几毫秒。这很快!
有 15 个以上的预设可用于为不同的云提供商和服务器构建您的 Nuxt 应用,包括:
或者用于其他运行时:
Nitro 有一个强大的功能叫做 routeRules,它允许您为 Nuxt 应用的每个路由定义一组规则,以自定义每个路由的渲染方式(以及更多)。
export default defineNuxtConfig({
routeRules: {
// Generated at build time for SEO purpose
'/': { prerender: true },
// Cached for 1 hour
'/api/*': { cache: { maxAge: 60 * 60 } },
// Redirection to avoid 404
'/old-page': {
redirect: { to: '/new-page', statusCode: 302 },
},
// ...
},
})
此外,还有一些路由规则(例如 ssr、appMiddleware 和 noScripts)是 Nuxt 特有的,用于在将页面渲染为 HTML 时更改行为。
某些路由规则(appMiddleware、redirect 和 prerender)也会影响客户端行为。
Nitro 用于为服务端渲染以及预渲染构建应用。