vue预渲染

prerender-spa-plugin

安装prerender-spa-plugin


配置prerender-spa-plugin插件

const PrerenderSpaPlugin = require('prerender-spa-plugin')
 plugins: [
    // 预加载
    new PrerenderSpaPlugin(
      // 输出目录的绝对路径
      path.join(__dirname, '../dist'),
      // 预渲染的路由
      ['/home', '/a', '/b' ], 这里加home是为了做首页路由是`/`的预渲染,将`/`根目录重定向到`/home`
      {
        // 监听到自定事件时捕获
        renderAfterDocumentEvent: 'sketelon-render-event',// 呈现预渲染页面的时间,例如document.dispatchEvent(new Event('sketelon-render-event'))
      }
    ),
 ]

设置路由,模式为history

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import ssss from '../components/mode';
const a = () => import('../components/a')
const b = () => import('../components/b')
Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      redirect: "/home"
    },
    {
      path: '/home',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/a',
      name: 'HelloWorld',
      component: ssss(a, 'a')
    },
    {
      path: '/b',
      name: 'HelloWorld',
      component: ssss(b, 'b')
    }
  ]
})

配置nginx

    location / {
           # 本地vue项目打包后的目录
            root   C:\Users\admin\Desktop\init\my-project\dist; 
			try_files $uri $uri/ /index.html;
        }

触发

  • 该例子中是以自定义事件的形式来触发
 document.dispatchEvent(new Event('sketelon-render-event'))

page-skeleton-webpack-plugin

(饿了么的骨架屏幕方案)[https://github.com/ElemeFE/page-skeleton-webpack-plugin]

转载于:https://my.oschina.net/u/3407699/blog/3053871

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值