vue 服务器渲染,vue基础知识
vue的两种服务器端渲染方案
京东零售的姜欣分享了vue的两种服务器端渲染方案。首先,服务器端渲染(SSR)能提升首屏体验,对SEO友好,但需要服务器环境和更高的开发成本。对于复杂页面,SSR可能是优化选择,而简单页面则更适合客户端渲染(CSR)。
方案一:vue-server-render插件。虽然官网教程复杂且示例基于过时的webpack4,但需经历初始化项目、配置多个webpack配置文件、创建server.js并理解createBundleRenderer,以及模拟数据和路由等步骤。这个方案配置成本较高,不建议新手尝试。
方案二:nuxt.js框架则更为便捷。nuxt通过自动路由和预设功能简化了开发过程,无需手动配置大量依赖。它支持模拟接口、axios集成,以及静态站点生成等特性,上手更为顺畅。
综上,如果你追求高效和易用性,nuxt.js是更好的选择,特别是对于初次尝试SSR的开发者。而对复杂场景和自定义配置有较高要求的,可能需要花费更多时间在vue-server-render上。具体选择取决于项目需求和开发者的技术水平。
如何评价vue服务器渲染工具nuxt.js
Nuxt.js是一个基于 Vue.js的服务器渲染框架,它集成了 webpack、vue-loader、vuex和 router,大幅降低了配置成本。这使得开发者能够更加专注于构建应用,而不是在配置上浪费时间。
在实现 Vue服务器渲染时,一些开发者可能会使用 vue-server-renderer的 renderToStream方法。然而,在处理 prefetch异常时可能会遇到一些问题。相比之下,Nuxt.js使用 renderToString方法,这使得异常处理变得更加简单。尽管如此,渲染速度可能会稍微慢一些。
Nuxt.js提供了自动的代码分割、热模块替换以及 SEO优化等功能,使开发过程更加高效。它还提供了丰富的路由和状态管理支持,使得应用更加灵活和可扩展。对于大型应用或需要高度优化的项目,Nuxt.js提供了更多可定制的选项,以满足特定需求。
综上所述,Nuxt.js是一个强大且功能丰富的 Vue.js服务器渲染工具,为开发者提供了高效的开发体验和强大的功能集。然而,每个项目的需求不同,因此在选择工具时应考虑项目特点和团队技能,以确保最佳的开发效率和应用性能。
Vue项目SEO优化解决方案
前言
众所周知,vue项目是单页面的应用,是十分不利于SEO优化的。今天我们一起聊一聊关于SEO优化的解决方案~
一、Vue项目进行SEO优化
VueSPA单页面应用对SEO不太友好,当然也有相应的解决方案,下面列出几种SEO方案
1.SSR服务器渲染
服务端渲染,在服务端html页面节点,已经解析创建完了,浏览器直接拿到的是解析完成的页面解构
关于服务器渲染:Vue官网介绍,对Vue版本有要求,对服务器也有一定要求,需要支持nodejs环境。
优势:更好的SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面
缺点:服务器nodejs环境的要求,且对原代码的改造成本高!nuxt.js(坑比较多,做好踩坑的准备)
2.静态化(博客,介绍性官网)
Nuxt.js可以进行generate静态化打包,缺点:动态路由会被忽略。/users/:id
优势:
编译打包时,就会帮你处理,纯静态文件,访问速度超快;
对比SSR,不涉及到服务器负载方面问题;
静态网页不宜遭到黑客攻击,安全性更高。
不足:
如果动态路由参数多的话不适用。
3.预渲染prerender-spa-plugin(插件)
如果你只是对少数页面需要做SEO处理(例如/首页,/about关于等页面)
预渲染是一个非常好的方式,预渲染会在构建时,简单的针对特定路由,生成静态HTML文件(打包时可以帮你解析静态化)
优势:设置预渲染简单,对代码的改动小
缺点:只适合于做少数页面进行SEO的情况,如果页面几百上千,就不推荐了(会打包很慢)
4.使用Phantomjs针对爬虫做处理
Phantomjs是一个基于webkit内核的无头浏览器,没有UI界面,就是一个浏览器,
其内的点击、翻页等人为相关操作需要程序设计实现。
这种解决方案其实是一种旁路机制,原理就是通过Nginx配置,判断访问的来源UA是否是爬虫访问,
如果是则将搜索引擎的爬虫请求转发到一个nodeserver,再通过PhantomJS来解析完整的HTML,返回给爬虫
优势:
完全不用改动项目代码,按原本的SPA开发即可,对比开发SSR成本小太多了;
对已用SPA开发完成的项目,这是不二之选。
不足:
部署需要node服务器支持;
爬虫访问比网页访问要慢一些,因为定时要定时资源加载完成才返回给爬虫;(不影响用户的访问)
如果被恶意模拟百度爬虫大量循环爬取,会造成服务器负载方面问题,
解决方法是判断访问的IP,是否是百度官方爬虫的IP。
小结
如果构建大型网站,如商城类=>SSR服务器渲染
如果只是正常公司官网,博客网站等=>预渲染/静态化/Phantomjs都比较方便
如果是已用SPA开发完成的项目进行SEO优化,而且部署环境支持node服务器,使用Phantomjs
博客参考:SEO优化方案