美文网首页
vue预渲染

vue预渲染

作者: w_wx_x | 来源:发表于2018-11-21 15:09 被阅读14次

服务端渲染VS预渲染
  服务端渲染:将完整的 html 输出到客户端,又被认为是‘同构’或‘通用’
        优点:首次渲染快(无需等待所有js都完成下载);
           利于SEO,节能
        缺点:开发受限
           需要处于Node.js server运行环境;
           更多的服务器负载(占用更大的CPU资源)
  预渲染:  获得服务端渲染的优点
        对特定路由生成静态HTML文件,前端作为一个完全静态的站点
        无需使用web服务器实时动态编译HTML
        改善少数页面的SEO,可采用预渲染
        若网站有成百上千条路线,预编译会非常缓慢(此情况慎用)

预渲染核心:prerender-spa-plugin
安装:   cnpm install prerender-spa-plugin --save-dev

build/webpack.prod.conf.js中进行配置
const PrerenderSPAPlugin = require('prerender-spa-plugin')
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer
// plugins插件里书写
plugins: [
   new PrerenderSPAPlugin({
      // 生成文件的路径,这个目录只能有一级。若目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动
      staticDir: path.join(__dirname, '../dist'),
      // 对应自己的路由文件
      routes: [ '/', '/moviesDetail'],
      // 若没有这段则不会进行预编译
      renderer: new Renderer({
        inject: {
          foo: 'bar'
        },
        headless: false,
        // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。
        renderAfterDocumentEvent: 'render-event'
      })
    }),
]
main.js中进行配置
new Vue({
  el: '#app',
  router,
  store,
  //   components: { App },
  //   template: '<App/>'
  render:h=>h(App),
  mounted(){
      document.dispatchEvent(new Event('render-event'))
  }
})
cnpm run build打包运行生成的目录如下,则证明此次操作成功
image.png

注:预渲染方式下的route需采用history模式,否则每个打包生成的index.html的文件内容会一样

export default new Router({
    mode: 'history',
    routes: [
        //...
    ]
})

vue-meta-info插件,网页meta标签
安装: cnpm install vue-meta-info --save-dev

main.js中进行配置
import MetaInfo from 'vue-meta-info' 
Vue.use(MetaInfo)
在xxx.vue文件里配置
export default {
    // 这些代码会转成网页的meta标签里的内容
    metaInfo: {
        title: '标题',
        meta: [
            {
                name: 'keywords',
                content: '关键字'
            },
            {
                name: 'description',
                content: '网页描述'
            }
        ]
    }

相关文章

  • vue预渲染

    服务端渲染VS预渲染  服务端渲染:将完整的 html 输出到客户端,又被认为是‘同构’或‘通用’        ...

  • vue预渲染

    npm install prerender-spa-plugin --save 1 vue-config.js中增...

  • vue实现预渲染

    vue实现预渲染要借助prerender-spa-plugin这个工具包,prerender-spa-plugin...

  • vue spa预渲染

    本文主要用于记录在单页面SEO优化中遇到的问题 技术栈:vue-cli webpack vue-meta-info...

  • 处理 Vue 单页面 Meta SEO的另一种思路

    预渲染为SEO提供了另一种可能,简单的来说,预渲染就是当vue-cli构建的项目进行npm run build 的...

  • vue2.0预渲染

    服务端渲染VS预渲染 1.服务端渲染:将完整的 html 输出到客户端,又被认为是‘同构’或‘通用’       ...

  • Vue 预渲染实现方案

    前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用。在一个单...

  • Vue 预渲染实现方案

    前言 Ajax 技术的出现,让我们的 Web 应用能够在不刷新的状态下显示不同页面的内容,这就是单页应用。在一个单...

  • vue 单页面应用SEO

    一. 使用prerender-spa-plugin插件预渲染 vue-cli2.0版本 安装插件 在webpack...

  • prerender-spa-plugin 预渲染插件的使用说明

    1:单页面应用不利于SEO SSH服务器端渲染 预渲染** 我用的脚手架 vue-cli webpack打包目录...

网友评论

      本文标题:vue预渲染

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