# SSR-Nuxt
前后端分离后单页面应用盛行,出现了服务端渲染的说法,其能更好的SEO
# 什么是服务器端渲染 (SSR)
- 服务器将组件和获取到的数据解析生成html字符串,发送给客户端。过程同之前的php、java等的全栈开发,使用模板引擎,获取数据后解析为html字符串后,发到客户端展现。
- 服务器渲染的 Vue.js 应用程序,可以同时在服务器和客户端上运行。
# 为什么使用服务器端渲染 (SSR)
- 更好的 SEO Google 和 Bing 可以很好对同步 JavaScript 应用程序进行索引。
- 更快的内容到达时间 (time-to-content) 无需等待所有的 JavaScript 都完成下载并执行。
# 服务器端渲染 vs 预渲染 (SSR vs Prerendering)
少数营销页面(例如 /, /about, /contact 等)的 SEO,预渲染。
# Nuxt.js通用应用框架
# 流程图
# 双模式
编译后同时生成客户端和服务端代码
- url访问地址,服务端渲染后发给客户端
************************************************************************************************************
- 页面中nuxt-link标签跳转,客户端渲染。history模式,无刷新跳转(同单页应用路由跳转)
函数 | 服务端 | 路由更新 | 触发时间 | 其它 |
---|---|---|---|---|
nuxtServerInit | 触发 | 不触发 | store/index.js中设置 | |
asyncData | 触发 | 触发 | 组件加载之前被调用 | 融合data返回 |
fetch | 触发 | 触发 | 渲染页面前被调用 | 填充(store)数据 |
# 注意事项
- 需要服务端渲染的数据使用asyncData获取
- vue生命周期中获取的数据会保持客户端渲染(如下mounted中获取)