文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue-cli3.0怎么使用prerender-spa-plugin插件预渲染

2023-06-30 16:47

关注

这篇文章主要介绍“vue-cli3.0怎么使用prerender-spa-plugin插件预渲染”,在日常操作中,相信很多人在vue-cli3.0怎么使用prerender-spa-plugin插件预渲染问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue-cli3.0怎么使用prerender-spa-plugin插件预渲染”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

如何使用prerender-spa-plugin插件预渲染

vue-cli3.0版本

安装

cnpm install prerender-spa-plugin --save

vue-config.js中增加

const PrerenderSPAPlugin = require('prerender-spa-plugin');const Renderer = PrerenderSPAPlugin.PuppeteerRenderer;const path = require('path');module.exports = {    configureWebpack: config => {        if (process.env.NODE_ENV !== 'production') return;        return {            plugins: [                new PrerenderSPAPlugin({                    // 生成文件的路径,也可以与webpakc打包的一致。                    // 下面这句话非常重要!!!                    // 这个目录只能有一级,如果目录层次大于一级,在生成的时候不会有任何错误提示,在预渲染的时候只会卡着不动。                    staticDir: path.join(__dirname,'dist'),                    // 对应自己的路由文件,比如a有参数,就需要写成 /a/param1。                    routes: ['/', '/product','/about'],                    // 这个很重要,如果没有配置这段,也不会进行预编译                    renderer: new Renderer({                        inject: {                            foo: 'bar'                        },                        headless: false,                        // 在 main.js 中 document.dispatchEvent(new Event('render-event')),两者的事件名称要对应上。                        renderAfterDocumentEvent: 'render-event'                    })                }),            ],        };    }}

在main.js中增加

new Vue({  router,  store,  render: h => h(App),  mounted () {    document.dispatchEvent(new Event('render-event'))  }}).$mount('#app')

router.js 中设置mode: “history”

运行npm run build,看一下生成的 dist 的目录里是不是有每个路由名称对应的文件夹。然后找个 目录里 的 index.html 用IDE打开,看文件内容里是否有该文件应该有的内容。有的话,就设置成功了 

预渲染 prerender-spa-plugin尝试

背景:想给项目做一些优化,想尝试预渲染和SSR

先说一下效果吧

这个感觉就是类似高级的骨架屏,不过他是一个真正的页面,只是没有数据,或者数据驱动渲染的一切。

使用这个插件 配置好几个预渲染的页面会 在build时提前讲这些页面渲染成浏览器可以直接打开的html文件。这样你在浏览器输入地址后,会直接得到这样一个页面,省去了渲染出页面的时间,因为在打包时这个页面就渲染完了,也就是我们提前预渲染了。

不好用的地方

说一些不好用的地方,比如我们我们做的是类似管理后台的页面,无论你进入什么也都需要先登陆,那么这个效果就会打折扣,毕竟无论预渲染了什么页面 都会被重定向到登录页。

使用

安装 如果不行可能需要翻墙或者找一些镜像包试试

npm i prerender-spa-plugin -S

配置 vue.config.js 

module.exports = {...,plugins: [        staticDir: path.join(__dirname, 'dist'),        routes:['/home'],        renderer: new Renderer({          inject: {            foo: 'bar'          },          renderAfterDocumentEvent: 'render-event'        })],// 另一种写法   // config.pludaasdfgins.push(      // new PrerenderSPAPlugin({        // staticDir: path.join(__dirname, 'dist'),        // indexPath: path.join(__dirname, 'dist', 'index.html'),        // routes:['/home'],        // renderer: new Renderer({          // inject: {          //   foo: 'bar'          // },          // headless: true,          // renderAfterDocumentEvent: 'render-event'        // })      // })    // )}

prerender-spa-plugin 还有很多参数 具体可以去官网

打包

npm run build

打包完成后在dist 文件(打包后的文件)里面有一个home的文件夹,里面有一个index.html 文件,当你 访问http:// …/home 页面时 就会直接调用这个页面。也可以直接用浏览器打开这个页面

坑点

打开生成的home/index.html 文件 会发现 有可能你的css js 引用的路径不对,导致你生成页面没有样式,此时需要处理路径使其调用到正确的css js。

自动化部署时

到此,关于“vue-cli3.0怎么使用prerender-spa-plugin插件预渲染”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯