资源
- vue-ssr
- nuxt.js
理解ssr
传统web开发
传统web开发,网页内容在服务端渲染完成,一次性传输到浏览器。
打开页面查看源码,浏览器拿到的是全部的dom结构。单页应用 Single Page App
单页应用优秀的用户体验,使其逐渐成为主流,页面内容由JS渲染出来,这种方式称为客户端渲染。
打开页面查看源码,浏览器拿到的仅有宿主元素#app,并没有内容。
两个问题:
- SEO不友好
- 首屏加载时间相对较长
服务端渲染Server Side Render
SSR解决方案,后端渲染出完整的首屏的dom结构返回,前端拿到的内容包括首屏及完整spa结构,应用激活后依然按照spa方式运行,这种页面渲染方式被称为服务端渲染 (server side render)。
ssr是折中方案,利用vue语法编写程序,还能在服务端渲染html内容。
构建
对于客户端应用程序和服务器应用程序,我们都要使用 webpack 打包 - 服务器需要「服务器 bundle」 然后用于服务器端渲染(SSR),而「客户端 bundle」会发送给浏览器,用于混合静态标记。
构建流程
代码结构
总结:
ssr优缺点都很鲜明的架构
优点:
- SEO
-
缺点:
负载大
- 开发条件限制
-
技术选型:
首屏内容到达时间的重要程度如何?
- seo是否是重要需求?仅有少量营销页面需要SEO,考虑预渲染pre-render
- 已经完成的spa项目,重构量很大怎么办?可以考虑Puppeteer
- 高流量情况是否做好充足服务器负载准备,缓存策略制定。
Nuxt.js实战
Nuxt.js 是一个基于 Vue.js 的通用应用框架。 资源:Nuxt官方文档
nuxt.js特性
nuxt安装
运行 create-nuxt-app
npx create-nuxt-app <项目名>
选项
运行项目: npm run dev