对于Vue-SPA架构的技术栈,目前的方案大致分为四种:1.前端爬虫模板在div#app中制定爬虫检索内容,并暴露站点要暴露的重点内容组织在div#app中。爬虫软件无论从哪条路由获取,获取的都是这个容器中的内容。前端渲染完成后,可以覆盖这个div#app的内容。优点:简单,改动小缺点:①模板内容可能与网站实际内容无关,需要单独整理模板内容,显示内容有限;②模板是静态内容,无法抓取异步数据;③会出现页面抖动,需要代码处理抖动情况。这个方法是我在查看泰语语义工厂网站(http://www.nlpai.cn/)时发现的。user-agent字段用于判断是真实用户还是爬虫软件。如果是真实用户,则返回真实的前端页面。如果是爬虫软件,会转发。转发目的地可以是普通的静态文件服务器(静态页面),也可以是应用服务器(后端渲染页面)。优点:可以随意自定义爬虫爬取的内容;缺点:①改动较大,需要前后端支持;②存在“欺诈”嫌疑,可能被搜索引擎处罚;3、预渲染(Prennrending)prerender-spa-plugin+vue-meta输出几个页面的静态内容,可以被爬虫软件爬取,其余页面依然采用SPA方案;优点:修改工作量适中;缺点:①预渲染页面必须是静态页面,不能异步加载数据;②爬虫爬取的内容比第一种方案多,但还是有限;4.两种方案的整体思路与服务端渲染(SSR)类似,但在一些技术细节上实现思路不同,均采用Vue+Vuex+webpack+node.js+Express(其他框架也可以)+webpack,具体原理和技术在各自官网都有详细的介绍,这里不再赘述。(1)vue-server-renderervue官网插件https://ssr.vuejs.org/zh/(2)Nuxt.jsvue-ssr整体解决方案https://zh.nuxtjs.org/优点:可以彻底解决SEO问题是最好的解决办法;缺点:变化很大,vue-server-renderer适合做SPA改造,但是改造工作量也很大。如果使用nuxt,最好在技术选型之初就使用,否则会改的太大;就个人这段时间的体验而言,nuxt开发体验更好,更成熟。是一套整体解决方案。推荐新项目采用该技术方案。这个方案可以搭配node+express使用,简单的后台需求也可以使用。这个技术栈可以用来实现。
