5月29日 01:55
Nuxt.js 的 SSG 和 SSR 有什么区别?怎么选?
SSG 在构建时(nuxt generate)遍历所有路由,执行数据获取逻辑,生成完整静态 HTML 文件,部署到任意静态服务器即可,请求零服务端开销;SSR 在每次请求时由 Node 服务动态渲染 HTML,内容实时但需要持续运行服务器。Nuxt 3 通过 routeRules 支持混合模式:同一个应用中,博客页 SSG、商品页 ISR(swr 缓存)、后台 SPA,按路由粒度选择渲染策略,不再需要二选一。
追问
- ISR(Incremental Static Regeneration)在 Nuxt 3 里怎么实现?和 Next.js 的 ISR 有什么区别?
- SSG 构建时动态路由太多怎么办?如何按需生成?
- 混合模式下 SSR 和 SSG 页面的 payload 传递机制有区别吗?
- SSG 页面的客户端数据怎么保持更新?
- Nitro 的预设(preset)对 SSG/SSR 部署有什么影响?
写段代码
js// nuxt.config.ts - 混合渲染策略 export default defineNuxtConfig({ routeRules: { '/': { prerender: true }, // SSG '/blog/**': { swr: 3600 }, // ISR 1小时 '/dashboard/**': { ssr: false }, // SPA '/api/**': { cors: true } // API路由 }, nitro: { preset: 'cloudflare-pages' } })