Vue.js 是构建客户端运用程序的框架。默认情形下,可以再浏览器中输出Vue组件,进行天生DOM和操作DOM。然而,也可以将同一个组件渲染未做事器真个HTML字符串,将它们直接发送到浏览器,末了将这些静态标记“激活”为客户端上完备可交互的运用程序。
做事端渲染的Vue.js运用程序也可以被认为是“同构”或“通用”,由于运用程序的大部分代码都可以在做事器和客户端上运行。
权衡之处:

开拓条件所限,浏览器特定的代码,只能在某些生命周期钩子函数(lifecycle hook)中利用;一些外部扩展库(external library)可能须要分外处理,才能在做事器渲染运用程序中运行。
环境和支配哀求更高,须要Node.js server运行环境;
高流量的情形下,须要准备相应的做事器负载,并明智地采取缓存策略。
上风:
更好的SEO,由于搜索引擎爬虫抓取工具可以直接查看完备渲染的页面;
更快的内容到达韶光(time-to-content),特殊是对付缓慢的网络情形或运行缓慢的设备。
不敷:
一套代码两套实行环境,会引起各种问题,比如做事端没有window、document工具,处理办法是增加判断,如果是客户端才实行;
涉及构培植置和支配的更多哀求,须要处于node server的运行环境
更多的做事端负载
2、Nuxt静态化
Nuxt.js框架,官方是这样先容的: 从头搭建一个做事端渲染的运用是相称繁芜的。幸运的是,我们有一个精良的社区项目Nuxt.js这让统统变得非常大略。Nuxt是一个基于Vue生态的更高层的框架,为开拓做事端渲染的Vue运用供应了极其便利的开拓体验。更酷的是,你乃至可以用它来做为静态站天生器。
静态化是Nuxt.js打包的另一种办法,算是Nuxt.js的一个创新点,页面加载速率很快。
把稳:在Nuxt.js实行 generate静态化打包时,动态路由会被忽略。
上风:
纯静态文件,访问速率超快
比拟SSR,不涉及到做事器负载方面问题;
静态网页不宜遭到黑客攻击,安全性更高。
不敷:
如果动态路由参数多都化不适用。
3、 预渲染 prerender-spa-plugin
如果你只是用来改进少数营销页面(例如: /,/about,/contact等=)的SEO,那么你可能须要预渲染。无需利用Web做事器实时动态编译HTML,而是利用预渲染办法,在构建时(build time)大略地天生针对特定路由等静态HTML文件。优点是设置预渲染更大略,并可以将你的前端作为一个完备静态的站点。
上风:
改动过小,引入插件配置即可
不敷:
无法利用动态路由
只利用少量页面的项目,页面多达几百个的情形下,打包会非常慢
4、利用Phantomjs针对爬虫做处理
Phantomjs是一个基于webkit内核的无头浏览器,即没有UI界面,即它便是一个浏览器,只是其内的点击、翻页等人为干系操作须要程序设计实现。
虽然“PhantomJS宣了结止开拓”,但是已经知足对Vue 的SEO处理。
这种办理方案实在是一种旁路机制,事理便是通过Nginx配置,判断访问来源UA是否是爬虫访问,如果是则将搜索引擎的爬虫要求转发到一个node server,再通过PhantomJS来解析完全的HTML,返回给爬虫。
上风:
完备不用改动项目代码,按原来的SPA开拓即可,比拟开拓SSR本钱小的不要太多;
对已用SPA开拓完成的项目,这是不二之选。
不敷:
支配须要node 做事器支持。
爬虫访问比网页访问要慢一些,由于定时要定时资源加载完成才返回给爬虫;
如果呗恶意仿照百度爬虫大量循环爬取,会造成做事器负载方面问题,办理方法是判断访问的IP,是否是百度官方爬虫的IP;
5、总结
如果构建大型网站,如商城类,不要犹豫直接上SSR做事端渲染,当然也有相应的坑等你,社区较成熟,英文好一些, 统统问题都迎刃而解。