好问题 你问的是 Next.js / Nuxt.js 和普通 CSR(客户端渲染)的区别。我帮你从 渲染模式、SEO、性能、使用场景 四个角度来系统讲。
一、普通 CSR(Client Side Rendering,客户端渲染)
特点
App
优点
前后端分离,开发效率高。
一次加载后,页面切换快(无刷新)。
缺点
二、Next.js(基于 React) & Nuxt.js(基于 Vue)
它们是 SSR(服务端渲染)/ SSG(静态生成)框架,区别于普通 CSR。
1. SSR(Server Side Rendering)
Next.js / Nuxt.js 默认支持 SSR。
// Next.js 页面
export async function getServerSideProps() {
const res = await fetch('https://api.example.com/data');
const data = await res.json();
return { props: { data } };
}
2. SSG(Static Site Generation)
在 构建时 就把页面生成为静态 HTML。
用户访问时直接返回静态文件,性能更高。
适合内容变化不频繁的页面(博客、文档)。
Next.js 的 getStaticProps / Nuxt.js 的 nuxt generate 就是 SSG。
3. ISR(Incremental Static Regeneration)
三、区别对比
| 对比点 | 普通 CSR | Next.js / Nuxt.js |
|---|
| 首屏渲染 | 慢:等 JS 执行 | 快:SSR/SSG 提前生成 HTML |
| SEO | 差:HTML 为空 | 好:HTML 有完整内容 |
| 服务端压力 | 小:只返回静态资源 | 较大:SSR 需服务器实时渲染 |
| 前端体验 | SPA,切换快 | 同样是 SPA(SSR/SSG 后仍会 hydrate) |
| 适用场景 | 后台管理系统、需要复杂交互的单页应用 | 内容展示、博客、商城、新闻门户,需要 SEO 和快首屏 |
四、总结
CSR(普通 React/Vue SPA)
渲染发生在客户端。
首屏慢,SEO 差,但适合复杂交互的后台系统。
Next.js / Nuxt.js