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优化方案

阅读剩余
THE END