Nuxt不单止是一个前端框架,官方宣称他是全栈的!
Nuxt采用的后端server框架是Nitro,最初是转为Nuxt创建的。但是现在是UnJS的一部分。
Nitro赋予Nuxt的能力为:
- 完全控制应用的服务器端部分
- 在任何提供商上通用部署
- 混合渲染
Nitro在内部使用H3,这是一个为高性能和可移植性而构建的最小HTTP框架
服务器端和中间件
如果想要定义一个/api/test,我们可以像这样
server/api/test.ts
export default defineEventHandler(async (event) => {
// ... Do whatever you want here
})
你可以控制它返回test,json,html或者是stream
开箱即用的特性,它支持模块热替换和自动导入
统一部署
Nitro提供了在任何地方部署Nuxt应用程序的能力, 从服务器到边缘网络,启动时间仅为几毫秒。非常快。
混合渲染
Nitro有一个强大的功能叫做routeRules,它允许你自定义一组规则,控制每个路由如何渲染。
nuxt.config.ts
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 }
}
// ...
}
})