vue项目首屏打开速度慢的解决方法


Posted in Javascript onMarch 31, 2019

最近接手了一个后台管理系统,技术栈主要是vue全家桶+elementui,老大打开测试环境页面的时候,说看到首页需要6秒钟,那如何进行优化呢?

首先我们需要安装webpack-bundle-analyzer

// webpack.prod.conf.js
if (config.build.bundleAnalyzerReport) {
 const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
 webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
// config/index.js
build: {
 // Run the build command with an extra argument to
 // View the bundle analyzer report after build finishes:
 // `npm run build --report`
 // Set to `true` or `false` to always turn it on or off
 bundleAnalyzerReport: process.env.npm_config_report
}

运行npm run build --report

vue项目首屏打开速度慢的解决方法

我们可以看到,vendor中的elementui占了500k,怎么优化呢?

在webpack配置文件中增加,接下来就是见证奇迹的时刻。

externals: {
  'vue': 'Vue',
  'element-ui': 'ELEMENT',
  'axios': 'axios'
 },

再看一下我们的vendor体积

vue项目首屏打开速度慢的解决方法

vendor一共才195k

那缺少的elementui文件去哪里找呢?答案是cdn引用。

vue项目首屏打开速度慢的解决方法

之前项目里还有引用moment,但是这个库实在是太大了,在github上我找到一个跟momentapi完全一样的库,但是文件大小只要2kb。

vue项目首屏打开速度慢的解决方法

其他优化方法还有ssr,这个最好用nuxtjs来做,自己配置ssr实在太麻烦了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 各种浏览器下获得日期区别
Dec 22 Javascript
juqery 学习之三 选择器 可见性 元素属性
Nov 25 Javascript
javascript编码的几个方法详细介绍
Jan 06 Javascript
JS刷新框架外页面七种实现代码
Feb 18 Javascript
js将字符串转成正则表达式的实现方法
Nov 13 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
js实现延迟加载的几种方法详解
Jan 19 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
基于openlayers实现角度测量功能
Sep 28 Javascript
jQuery事件blur()方法的使用实例讲解
Mar 30 #jQuery
Javascript实现一朵从含苞到绽放的玫瑰
Mar 30 #Javascript
使用post方法实现json往返传输数据的方法
Mar 30 #Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
Mar 30 #Javascript
微信公众平台获取access_token的方法步骤
Mar 29 #Javascript
vue路由--网站导航功能详解
Mar 29 #Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 #Javascript
You might like
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
php实例化一个类的具体方法
2019/09/19 PHP
js实现字符串转日期格式的方法
2015/05/20 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
美国折扣网站:jClub
2017/08/07 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
教师自我鉴定
2013/12/13 职场文书
学前教育求职自荐信范文
2013/12/25 职场文书
致裁判员加油稿
2014/02/08 职场文书
贷款承诺书范文
2014/05/19 职场文书
服务承诺书怎么写
2014/05/24 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
SQL基础的查询语句
2021/11/11 MySQL
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技