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 相关文章推荐
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js截取函数(indexOf,join等)
Sep 01 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
Nov 30 Javascript
CheckBoxList多选样式jquery、C#获取选择项
Sep 06 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 Javascript
js 定位到某个锚点的方法
Nov 19 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
使用jQuery操作DOM的方法小结
Feb 27 Javascript
微信小程序 合法域名校验出错详解及解决办法
Mar 09 Javascript
vue.js实现条件渲染的实例代码
Jun 22 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
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
YII实现分页的方法
2014/07/09 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
JavaScript实现动态删除列表框值的方法
2015/08/12 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
canvas知识总结
2017/01/25 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Django中几种重定向方法
2015/04/28 Python
python分割列表(list)的方法示例
2017/05/07 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
如何用python整理附件
2018/05/13 Python
用python解压分析jar包实例
2020/01/16 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
比利时香水网上商店:NOTINO
2018/03/28 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
自我评价的写作规则
2014/01/06 职场文书
党员培训思想汇报
2014/01/07 职场文书
主管竞聘书范文
2014/03/31 职场文书
小学生安全责任书
2014/07/25 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
关于的python五子棋的算法
2022/05/02 Python