vue-cli3.0预渲染

1.核心插件

cnpm install prerender-spa-plugin --save-dev

2.vue-config.js中

const path = require(‘path‘);
const PrerenderSPAPlugin = require(‘prerender-spa-plugin‘);
const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;
module.exports = {
        configureWebpack: config => {
        if (process.env.NODE_ENV === ‘production‘) {
            // 为生产环境修改配置...
            return {
                plugins: [
                    // 预渲染配置
                    new PrerenderSPAPlugin({
                        //要求-给的WebPack-输出应用程序的路径预渲染。
                        staticDir: path.join(__dirname, ‘dist‘),
                        //必需,要渲染的路线。            // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。
                        routes: [‘/‘,‘/fillIn‘],
                        //必须,要使用的实际渲染器,没有则不能预编译
                        renderer: new Renderer({
                            inject: {
                                foo: ‘bar‘
                            },
                            headless: false, //渲染时显示浏览器窗口。对调试很有用。
                            //等待渲染,直到检测到指定元素。
                            //例如,在项目入口使用`document.dispatchEvent(new Event(‘custom-render-trigger‘))`
                            renderAfterDocumentEvent: ‘render-event‘
                        })
                    })
                ],
            }
        } else {
            // 为开发环境修改配置...
            return;
        }
    }
}

3.在main.js中

new Vue({
  router,
  store,
  render: h => h(App),
  mounted () {
    document.dispatchEvent(new Event(‘render-event‘))
  }
}).$mount(‘#app‘)
4.router.js 中路由必须设置 mode: “history”模式
5.npm run build打包,生成的 dist 目录里有配置的每个路由名称对应的文件夹,里面的index.html有内容,就代表成功了。反之,请重新按步骤检查。

原文地址:https://www.cnblogs.com/mrt-yyy/p/12672863.html

时间: 2024-08-30 13:57:17

vue-cli3.0预渲染的相关文章

vue cli3.0用axios调用本地json数据一直报404

最近在基于vue做后台管理系统时,用了vue cli3.0用axios调用本地json数据一直报404,市面上所有的解决办法都没用,快崩溃了,结果最后发现原因是,vue cli3.0 public 文件夹才是静态资源文件,问题解决,记录一下,以后不再踩坑. 最近发现好多人都踩这个坑,索性把我的结构发出来. 参考地址:https://www.love85g.com/?p=1500 原文地址:https://www.cnblogs.com/dapengFly/p/11359456.html

Vue CLI3 开启gzip压缩

gizp压缩是一种http请求优化方式,通过减少文件体积来提高加载速度.html.js.css文件甚至json数据都可以用它压缩,可以减小60%以上的体积. webpack在打包时可以借助 compression webpack plugin 实现gzip压缩,首先需要安装该插件: npm i -D compression-webpack-plugin 在vue cli3.0 生成的项目里,可在 vue.config.js 中按照如下方式进行配置:  压缩前后大小大致如下: 生成的压缩文件以.g

VUE CLI3.X 创建项目

Node.js环境搭建 Node.js基于V8引擎,可以让js代码脱离浏览器运行 Vue CLI3.0 需要Node.js 8.9或者更高版本. 用nvm或者nvm-windows在同一台电脑中管理多个Node版本 nvm github地址:https://github.com/nvm-sh/nvm Vue CLI 3.0环境搭建 卸载老版本vue-cli:npm uninstall vue-cli -g 安装新版本:npm install -g @vue/cli 原型开发:npm instal

Vue 2.0 服务端渲染入门

1 什么是服务端渲染 SSR server side render 就是通过后端吐模板,而不是通过前端ajax获取数据,拼接字符串. 2 为什么需要SSR 需要SEO,因为爬虫不会等待ajax结果. 客户端网络慢,加载速度慢,影响用户体验. 3 另一种解决办法 预渲染 不是一次性下载整个单页应用,预渲染只是在构建时为了特定的路由生成特定的几个静态页面 你用webpack可以很简单地通过prerender-spa-plugin来添加预渲染 4 NodeJS编写Vue的SSR 首先npm insta

vue 预渲染 prerender-spa-plugin

最近项目上线要做运营,vue单页面做运营很不友好 一开始用的这个配置 const PrerenderSPAPlugin = require('prerender-spa-plugin') const Renderer = PrerenderSPAPlugin.PuppeteerRenderer const webpackConfig = merge(baseWebpackConfig, { plugins: [ // vue-cli生成的配置中就已有这个了,不要动 new HtmlWebpack

使用 Vue 2.0 实现服务端渲染的 HackerNews

Vue 2.0 支持服务端渲染 (SSR),并且是流式的,可以做组件级的缓存,这使得极速渲染成为可能.同时, 和 2.0 也都能够配合 SSR 提供同构路由和客户端 state hydration.vue-hackernews-2.0 是 Vue 作者在GitHub上面放的 Vue 2.0 的一个示例项目,结合 Express.vue-router & vuex 来构建,是很好的学习案例. Features Server Side Rendering Vue + vue-router + vue

vue项目使用 prerender-spa-plugin 预渲染

由于项目要做seo优化,而用vue写成的spa页面谷歌浏览器等是抓取不到数据的.介于ssr和预渲染来说,后者相对来说要简单许多.所以采用了预渲染方式.采用插件prerender-spa-plugin使用 第一步:修改配置文件webpack.prod.conf.js 在 const webpackConfig = merge(baseWebpackConfig, {plugins: [ new webpack.DefinePlugin({ new PrerenderSpaPlugin(// Req

服务端预渲染之Nuxt(介绍篇)

现在前端开发一般都是前后端分离,mvvm和mvc的开发框架,如Angular.React和Vue等,虽然写框架能够使我们快速的完成开发,但是由于前后台分离,给项目SEO带来很大的不便,搜索引擎在检索的时候是在网页中爬取数据,由于单页面应用读取到的页面是几乎空白的,无法爬取到任何数据信息. <!DOCTYPE html> <html> <head> <meta charset=utf-8> <meta name=viewport content=&quo

Vue 3.0源码发布,前端程序员:“我真的学不动了!”

那天刷知乎,发现超多人唱衰前端岗,搞的小白和刚入行的新人人心惶惶,不知道自己入行的决定到底是对是错. 前端知识的学习不像上学,只局限在书本上的知识,层出不穷的热点和事件,多到让我们分不清什么是过时和新潮.以前能讲得清 ES6 的人已经很厉害了,可现在 ES8 都出来很久了,真是一刻都不能停止学习. 要是没什么人带领,就算每天都能追上热点,知道潮流的语言,刷再多论坛看再多分享,缺少实操的机会,也是白费功夫. 那么,到底什么样的能力,才是前端开发必备的?你与阿里P6的程序员,差在哪里?前端岗位该如何