美文网首页我们就爱程序媛让前端飞
nuxt.js 初探解决 SPA应用SEO问题

nuxt.js 初探解决 SPA应用SEO问题

作者: 北方蜘蛛 | 来源:发表于2017-10-21 18:04 被阅读259次

现在vuejs 大行其道,我司也全部重构成SPA应用了,总的来说开发体验维护体验是大大的提升了。不过一个遗憾就是SEO很困难,尤其是我司的内容类网站,改版之后百度等搜索引擎收录很差,这不是小问题,必须得解决。
曾经试过几个方案:

phantomJS

使用phantomjs 把浏览器渲染的页面保存到web服务器,简单说就是一种生成静态页面的技术。
通过nginx检查文件是否存在,如果存在丢出静态页面。一定程度上也可以解决这个问题。不过弊端依然很明显,
生成好的静态页面要定期重新生成,因为UI随时可能发生变化。而且针对静态页面的路由在nginx上也需要复杂的配置。
好需要一个定时任务脚本,全站全部生成一遍,总感觉稍微有点蛋疼。
相关文章:http://www.jianshu.com/p/6be9424a358d 总的来说不够友好。

nuxtjs

nuxt.js https://nuxtjs.org 可以先撸一遍文档有中文的,这是专门解决vuejs 应用ssr方案的框架。如果你的项目正在从零开始,那么非常推荐直接只用这个框架搭建项目。在这就不做具体介绍。
先说说他实现原理,nuxt.js 项目在开发体验上基本上跟vuejs全家桶开发单页面是非常一致的。
他简化了路由复杂配置,直接在pages目录下面生成对应的文件夹就好了,这一步让人很省心。
那么他是如何把以往浏览器渲染的内容写入“组件”内的呢?这个问题我现在还没看懂,但是有一点是肯定的,那就是需要nodejs 写入文件,最终拼接处的页面是动态页面。这种项目,发布运行是一定需要nodejs环境支持的,与之前我们 npm run build 一堆纯静态文件,只需要nginx就够,是不一样的。 从性能上来讲应该更消耗资源,当然一定可以通过nginx实现动静分离的。
其实到现在我只是简单尝试了一下,背后原理优缺点还没搞清楚,在啃几天看看,总之从体验上来说是非常棒的,SEO问题是可以完美解决的。先贴一段代码吧。

<template>
  <div class="VueToNuxtLogo">
    <ul>
    {{ lists.title }}
    </ul>
    <h1>这货真要渲染吗 {{ name }}</h1>
  </div>
</template>
<script>
  import axios from 'axios'
  export default {
    data () {
      return {
        msg: null,
        lists: {}
      }
    },
    asyncData ({ isStatic, isServer }) {
      return axios.get('http://domain/api/post/123456').then((data) => {
        return {
          name: isStatic ? 'static' : (isServer ? 'server' : 'client')
        }
      })
    },
    methods: {
      get_data () {
        axios.get('/api/post/123456').then((data) => {
          this.lists = data.data.result
          this.msg = data.data.result.title
        })
      }
    },
    created () {
      this.get_data()
    }
  }
</script>
<style>


</style>

这个组件已经实现了,服务端渲染和客户端渲染混合显示,官方的例子中这样的不多,值得注意的是 asyncData 异步数据,不知道为什么会取这个名字,不应该是同步数据更好理解吗...没错这货就是负责把数据塞到html源代码中的。不但在html上有这些数据,他还会把这些数据静态到相关js代码中如下图

image.png

也就是这个html文档会出现双份的数据,不知道这样会不会造成流量过大,尤其是那种内容很多的页面,这个size可就翻倍了。也许应该有配置关掉这个把。

暂时先写到这,欢迎一起研究的小伙伴随时交流。

相关文章

  • nuxt.js 初探解决 SPA应用SEO问题

    现在vuejs 大行其道,我司也全部重构成SPA应用了,总的来说开发体验维护体验是大大的提升了。不过一个遗憾就是S...

  • nuxt实现导航切换样式

    最近在学习nuxt,主要的原因是SPA(单页应用)不利于搜索引擎的SEO操作,Nuxt.js适合作新闻、博客、电影...

  • React 同构实践

    前言 目前单页面应用(SPA)很是流行,同时也带了一些问题,如SEO不友好,首屏加载慢等,为了解决上述问题,所谓的...

  • vue 面试题

    介绍SPA 以及SPA 的缺点 spa 是单页面应用. 缺点: seo(讲究多页面,动态修改关键字) 优化不好.性...

  • vue下载prerender-spa-plugin插件报错

    先交代下问题来源: vue构建单页应用,但是要做seo,prerender-spa-plugin这个预渲染插件可以...

  • Nuxt 开发搭建博客

    众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案。 服务端渲染 (SSR) 就是常用的一种...

  • Node后端数据渲染

    SPA场景下SEO的问题 通常情况下,SPA应用或者前后端分离的开发模式下页面加载的基本流程是,浏览器先加载一个空...

  • nuxt简介

    服务端渲染 传统服务端渲染 image.png 单页面应用 SPA nuxt 是什么 Nuxt.js 是一个基于 ...

  • nuxt

    服务端渲染 传统服务端渲染 image.png 单页面应用 SPA nuxt 是什么 Nuxt.js 是一个基于 ...

  • vue SEO 预渲染 vue-cli3.x plugin-pr

    vue做的页面不利于seo,有两种方法能解决这个问题:vue add prerender-spa和ssr这里我用的...

网友评论

    本文标题:nuxt.js 初探解决 SPA应用SEO问题

    本文链接:https://www.haomeiwen.com/subject/oxaiuxtx.html