vue首次加载很慢、vendor文件过大的优化方式

最近开发一套后台管理系统,遇到首页加载很慢的问题,技术栈是 vue全家桶 + elementUI + echarts 。首次加载大概需要50s,页面才能出来。

偶尔快一点的时候

总结如下原因

原因1:由于vendor.js和app.css较大,UI渲染线程并不会优先加载他俩,但是VUE等主流的单页面框架都是js渲染html body的,所以必须等到vendor.js和app.css加载完成后完整的界面才会显示。

原因2:还有一个原因就是单页面首次会把所有界面和接口都加载出来,会有多次的请求和响应,数据不能马上加载

二者相加所以会有长时间的白屏。

解决方式如下:

  1. vue-router 路由懒加载


    路由懒加载写法
  2. 使用CDN加载
index.html引入cdn

webpack.base.conf.js
  1. 防止编译文件中出现map文件。
    config/index.js 文件中设置 productionSourceMapfalse
config/index.js
  1. 使用gzip压缩
    1). 修改config/index.js 文件下 productionGzip:true ;
    2). 安装依赖 npm install --save-dev compression-webpack-plugin@1.1.11 。(注:这里为啥要指定版本号呢,是因为高版本的依赖会报错,我使用的1.1.11版本是没报错)
  1. 去掉代码中的console.log
    打包之后控制台很干净,部署正式环境之前最好这样做。参考
    参考的方法,亲测有效

最后来看下打包后的效果吧:


文件还是比较小的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 响应式布局的理解 响应式开发目的是一套代码可以在多种终端运行,适应不同屏幕的大小,其原理是运用媒体查询,在不同屏幕...
    懒猫_6500阅读 4,172评论 0 0
  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,681评论 4 31
  • 本文基于工作项目开发,做的整理笔记因工作需要,项目框架由最初的Java/jsp模式,逐渐转移成node/expre...
    SeasonDe阅读 12,122评论 3 35
  • 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过...
    阳阳阳一堆阳阅读 8,584评论 0 5
  • 1. 组件的data为什么必须是函数? 组件中的 data 写成一个函数,数据以函数返回值形式定义,这样每复用一次...
    郭先生_515阅读 4,551评论 0 12