浅谈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 相关文章推荐
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
Nov 24 Javascript
HTML 自动伸缩的表格Table js实现
Apr 01 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
Javascript动画效果(3)
Oct 11 Javascript
JavaScript制作弹出层效果
Dec 02 Javascript
jQuery文字轮播特效
Feb 12 Javascript
php 修改密码实现代码
May 24 Javascript
原生js实现点击轮播切换图片
Feb 11 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
CodeIgniter中实现泛域名解析
2014/07/19 PHP
总结对比php中的多种序列化
2016/08/28 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
javascript中定义类的方法详解
2015/02/10 Javascript
zepto.js中tap事件阻止冒泡的实现方法
2015/02/12 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
JS实现购物车特效
2017/02/02 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
js装饰设计模式学习心得
2018/02/17 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
2019/04/22 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
Python实现扫码工具的示例代码
2020/10/09 Python
python collections模块的使用
2020/10/16 Python
美国婚礼装饰和活动用品批发供应商:Event Decor Direct
2018/10/12 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
美德少年事迹材料1000字
2014/08/21 职场文书
2014年变电站工作总结
2014/12/19 职场文书
华清池导游词
2015/02/02 职场文书
检讨书格式
2015/05/07 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python