Vue.js 服务端渲染(SSR)
什么是 SSR?
服务端渲染(Server-Side Rendering,SSR)是指在服务器上将 Vue 组件渲染成 HTML 字符串,然后发送给客户端。这与客户端渲染(CSR)不同,后者在浏览器中渲染组件。
SSR 的优势
1. 更好的 SEO
搜索引擎爬虫可以直接看到完整的页面内容。
2. 更快的首屏加载
用户可以更快地看到页面内容,无需等待 JavaScript 下载和执行。
3. 更好的性能(在某些情况下)
对于内容密集型应用,SSR 可以提供更好的性能。
SSR 的劣势
- 服务器负载更高
- 开发复杂度增加
- 部署和维护成本更高
- 某些浏览器 API 不可用
使用 Nuxt.js(推荐)
Nuxt.js 是基于 Vue 的 SSR 框架,提供了开箱即用的 SSR 支持。
安装 Nuxt
Nuxt 项目结构
创建页面
数据获取
手动实现 SSR
如果不使用 Nuxt,可以手动实现 SSR:
1. 安装依赖
2. 创建服务器
3. 客户端激活(Hydration)
SSR 数据预取
SSR 生命周期
在 SSR 中,只有 beforeCreate 和 created 钩子会在服务端执行:
处理浏览器 API
某些浏览器 API 在服务端不可用:
状态管理与 SSR
Pinia with SSR
缓存策略
页面级缓存
组件级缓存
静态站点生成(SSG)
Nuxt 支持静态站点生成:
混合渲染
可以为不同路由选择不同的渲染模式:
SEO 优化
性能优化
1. 代码分割
2. 预取关键资源
3. 使用 CDN
部署
Vercel
Netlify
Node.js 服务器
总结
- SSR 提供更好的 SEO 和首屏性能
- Nuxt.js 是 Vue SSR 的最佳选择
- 注意服务端和客户端的差异
- 合理使用缓存策略
- 可以混合使用 SSR、SSG 和 CSR
- 针对不同场景选择合适的渲染模式
下一步
接下来学习 工具链和生态,了解 Vue 生态系统中的工具和库。