浅谈vue项目可以从哪些方面进行优化


Posted in Javascript onMay 05, 2018

图片优化

1、图片大小优化,部分图片使用WebP(需要考虑webp兼容性)

  1. 在线生成,如智图、又拍云
  2. gulp生成,gulp-webp或gulp-imageisux
  3. canvas生成

2、减少图片请求,使用雪碧图

  1. 在线生成:sprites Generator、腾讯的gopng、spriteme
  2. 代码生成:gulp.spritesmith或者sass的compass

页面性能优化

图片或组件懒加载

使用vue-lazyload组件或其他一些组件

vue-lazyload地址: https://www.npmjs.com/package/vue-lazyload

图片懒加载:v-lazy或使用v-lazy-container包含一个图片组

// 引入一张图片 
<img v-lazy="//domain.com/img1.jpg"> 
// 引入一组图片
<div v-lazy-container="{ selector: 'img', error: 'xxx.jpg', loading: 'xxx.jpg' }">
 <img data-src="//domain.com/img1.jpg">
 <img data-src="//domain.com/img2.jpg">
 <img data-src="//domain.com/img3.jpg"> 
</div>

组件懒加载

Vue.use(VueLazyload, {
 lazyComponent: true
});
<lazy-component>
 <img class="mini-cover" :src="img.src" width="100%" height="400">
</lazy-component>

图片预加载

快速显示图片

使用场景:在某个查看图片的组件,当不断翻看下一页的图片时,从服务端获取数据再展示图片会出现图片缓慢加载的情况,此时可以在展示新数据时候先预加载图片,图片加载完之后在,将图片填充到对应位置

三方插件懒加载(按需加载)

js文件一般是同步加载的,放在页面内会阻塞主要js文件加载。

使用场景:有的项目必须引入jquery等文件时,在组件内部引入这些文件一定程度会阻塞页面渲染,因而通过特定事件(点击或者弹窗)动态加载jquery等JS文件,可以使主页面快速显示出来。

异步加载页面,如何让组件之间不重合

加载多个vue组件时,同时组件是通过服务端数据渲染时,会出现多个组件先重合后分离的状况

三种方案

  • 当页面展示的版块是固定的时候且内容高度不易变动时候,可以预先在组件外设置一个固定高度,显示的时候就像在一个框架里添加内容。当页面内容不固定时候,为了减少异步加载时组件重合的问题,可以在首屏在某组件数据加载完成时候设置其他组件显示,通过v-show显示。
  • 当页面整体固定时,可以为页面增加一个骨架,这样防止页面闪烁的情况。具体实施可以参照 https://3water.com/article/130505.htm
  • 服务端渲染页面,对于一些页面数据固定、更改较少的,可以考虑通过服务端渲染,会在短时间将页面显示出来,有比较好的用户体验。

减少引入外部文件大小

项目引入部分ElementUI内容时,通过引入babel-plugin-component配置.babelrc文件,这样即可引入部分组件,从而减少组件的大小。

路由懒加载

但使用到vue-router时,webpack会将所有组件打包在一个js文件中,这样就导致这个文件非常大,从而会影响首页的加载,最好的方法就是将其他路由分别打包到不同js文件中,切换路由时再加载对应js文件。

resolve => require([URL], resolve), 支持性好

() => system.import(URL) , webpack2官网上已经声明将逐渐废除, 不推荐使用

() => import(URL), webpack2官网推荐使用, 属于es7范畴, 需要配合babel的syntax-dynamic-import插件使用

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

Javascript 相关文章推荐
jquery load()在firefox(火狐)下显示不正常的解决方法
Apr 05 Javascript
Three.js源码阅读笔记(Object3D类)
Dec 27 Javascript
jQuery让控件左右移动的三种实现方法
Sep 08 Javascript
javascript引用类型指针的工作方式
Apr 13 Javascript
微信小程序 特效菜单抽屉效果实例代码
Jan 11 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
详解webpack多页面配置记录
Jan 22 Javascript
layui获取选中行数据的实例讲解
Aug 19 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
详解Vue之父子组件传值
Apr 01 Javascript
vue移动端模态框(可传参)的实现
Nov 20 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 Javascript
Angular模版驱动表单的使用总结
May 05 #Javascript
浅谈Angular HttpClient简单入门
May 04 #Javascript
Vue项目全局配置微信分享思路详解
May 04 #Javascript
vue嵌套路由与404重定向实现方法分析
May 04 #Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
May 04 #Javascript
详解使用jQuery.i18n.properties实现js国际化
May 04 #jQuery
node实现的爬虫功能示例
May 04 #Javascript
You might like
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
如何让您的中波更粗更长 - 中波框形天线制作
2021/03/10 无线电
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
早该知道的7个JavaScript技巧
2013/03/27 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
在漏洞利用Python代码真的很爽
2007/08/26 Python
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
python如何获取服务器硬件信息
2017/05/11 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Python实现自动上京东抢手机
2018/02/06 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
美国汽车交易网站:Edmunds
2016/08/17 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
教师评优的个人自我评价分享
2013/09/19 职场文书
上班上网检讨书
2014/01/29 职场文书
试用期自我鉴定范文
2014/03/20 职场文书
个人委托书范本
2014/09/13 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书