Vue项目性能优化是个老生常谈的问题了,本人开发过程中也查过很多关于Vue项目优化的文章,每篇文章说的都差不多,本章我就结合我的心得和大家的智慧做一个总结。

1.懒加载

懒加载应该是提高性能的最简单有效的方式了,一个项目加上懒加载速度和逼格都会上一个台阶。懒加载的意义在于按需加载,不会让项目刚开始运行速度就很慢,能大大的优化用户体验。Vue项目懒加载分为图片懒加载和路由懒加载,具体写法如下:

(1)路由懒加载

{path: '/home',name: 'home',component: resolve => require(['@/components/home'],resolve)
},{path: '/index',name: 'Index',component: resolve => require(['@/components/index'],resolve)
},{path: '/about',name: 'about',component: resolve => require(['@/components/about'],resolve)
} 

(2)图片懒加载

<!--使用前需先安装配置vue-lazyload-->
<a href="javascript:;"><img v-lazy="'/static/img/abc.jpg'"></a>

2.代码优化

代码优化是一个项目优化的核心,不仅能提高项目质量和用户体验,同时还能让项目更容易维护,代码优化主要有一下几个方面:

(1)功能重复组件和函数封装,提高代码复用率

组件封装这点非常重要,但是也常常被人忽略,之所以这么说是因为组件封装不仅能提高开发效率,还能减少以后维护成本。例如;一些级别比较高的程序员会在开发之前设计好一些常用组件库,现成的(东北话)组件会让其他人大大增加开发效率、如果需要修改和优化只需要修改一处就好,不至于牵一发而动全身。中等程序员则是在开发过程中把重复组件提出来进行组件封装;那最低级程序员则是根本没有这方面的意识。如何提高组件封装的意识才是解决的根本所在。

(2)尽量减少本地存储的使用

尽量减少本地存储(localStorage、sessionStorage、cookie)的使用也是提高性能的方式之一,有些小伙伴喜欢用本地存储传参,传参的方式有很多种,比如:路由传参或者vuex等

(3)减少watch使用 v-if和v-show使用要有原则

watch监听大量状态时会让浏览器出现卡顿现象,所以尽量减少使用。v-if和v-show的区别是;v-if是不渲染,而v-show是渲染不显示,至于如何使用视情况而定

3.用户体验优化

(1)添加Loading

当用户需要等待时间较长时,必须添加等待loading,这个不多说,用处大大地

(2)路由逻辑

路由逻辑是一个项目的核心,如果路由逻辑不通的话,用户很有可能点返回按钮的时候一直在两个页面之间跳转,进入死循环。其次,路由逻辑和用户体验息息相关,比如用户下完单应该跳转到订单详情页,而不是首页等等

(3)样式统一

两个页面的相同功能按钮,它的大小颜色如果不用的话就会让人感觉你的App不够专业

(4)滚动组件的使用

网页的原声滚动用户体验不好,我们需要使用一些滚动组件,比如:better-scroll、iscroller、scroller等,滚动组件的使用能让页面滚动更自然,逼格更高

4.webpack打包优化

(1)减去控制台打印和备注

npm install uglifyjs-webpack-plugin --save

const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const isProduction = process.env.NODE_ENV === 'production';configureWebpack: config => {const plugins = [];if (isProduction) {plugins.push(new UglifyJsPlugin({uglifyOptions: {output: {comments: false,},warnings: false,compress: {drop_console: true,drop_debugger: false,pure_funcs: ['console.log']}}}))}

(2)图片压缩

npm install image-webpack-loader
//vue.config.jsmodule.exports = {// 根据你的实际情况更改这里publicPath,assetsDir: 'assets',lintOnSave: true,// image 压缩 定义在chainWebpack中chainWebpack: config => {config.module.rule('images').use('image-webpack-loader').loader('image-webpack-loader').options({bypassOnDebug: true}).end()}

 (3)GZIP 源码压缩

GZIP教程传送门

5.CDN加速

好处:

1.减少包体积

2.能让静态资源加载更快

3.较少首屏渲染时间

4.总结:CDN能让你的项目变快,配合GZIP使用效果更佳。具体教程可以搜索详细的 这里就不赘述了

好了,以上就是总结的Vue项目优化的相关内容,欢迎留言点评

Vue项目性能优化篇相关推荐

  1. vue项目性能优化——断点续传

    vue项目性能优化 用户上传文件的时候,如果文件过大,那么上传可能就会很耗时.而且一旦上传的过程中发生了网络中断,那上传就前功尽弃了.为了提高用户的体验,我们可以选择断点续传,也就是把文件切分成小块后 ...

  2. Vue 项目性能优化方案

    前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍然存 ...

  3. 前端Vue 项目性能优化

    前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM:但 Vue 项目中仍然存 ...

  4. 接手同事vue项目两个月的血和泪,关于vue项目性能优化,缩短首屏加载时间

    最近接手了别人做的vue项目,项目跑起来后,有些页面很卡,首屏加载也慢,打包速度也慢.于是,研究了很久vue的项目性能优化,下面我将从两个部分来详解vue项目的性能优化: 代码优化 webpack打包 ...

  5. 收藏这些vue项目性能优化方式,总有一天能用上

    vue项目如何进行性能优化?下面本篇文章给大家分享一些vue项目一定会用到的性能优化方法,希望对大家有所帮助! 提起性能优化 很多人眼前浮现的面试经验是不是历历在目呢?反正,性能优化在我看来他永远是前 ...

  6. Vue项目性能优化方案

    一.代码层面的优化  1.v-if和v-show的使用场景  (1)v-if适用于在运行时很少改变条件,不需要频繁切换条件的场景,属于真正的条件渲染,会确保在切换过程中,元素适当的被销毁和重建,也是惰 ...

  7. vue项目性能优化(图片优化)

    一.图片保存阶段 ps 或 sketch 等图片,保存时或保存后,使用photoshop .jpg 图片选择 "连续" .png图片选择 "优化" 二. 图片压 ...

  8. vuejs项目性能优化 - 总结篇

    首页等页面加载慢?打包编译后css/js文件过大?试试压缩.路由懒加载等技术 打包编译后,过大的文件如:app.css.app.js.vendor.js 本着 "开发环境".&qu ...

  9. 【Vuejs】953- Vue 项目性能优化技巧分享

    来自:知乎,作者:小可乐程序员 链接:https://zhuanlan.zhihu.com/p/83180326 前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累 ...

最新文章

  1. 加快modelsim仿真速度的方法(原创)
  2. Git复习(十一)之常见命令用法
  3. [GDAL]写入shp
  4. dotnet new 命令安装模板
  5. Python程序中的线程操作-锁
  6. 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈
  7. Java备份Oracle数据库
  8. 1.读入待分析的字符串 2.分解提取单词 3.计数字典 4.排除语法型词汇 5.排序 6.输出TOP(20)...
  9. mysql启动找不见socket
  10. HoudahSpot查找多个文件教程:从名称列表中查找文件
  11. 云计算摆摊的可行性分析 | 凌云时刻
  12. 我的世界光影mod怎么用_《我的世界》RTX beta 版视频体验:仿佛打破了次元壁
  13. displaytag分页中文处理
  14. 光伏发电仿真系列-光伏并网发电系统研究
  15. 守望先锋-生涯数据信息抓取的实现
  16. 泰勒公式矩阵形式_泰勒公式的各种余项形式及其多种证明
  17. 金山词霸PC企业版2016
  18. 远程桌面提示“用户帐户限制(例如,时间限制)会阻止你登录。请与系统管理员或技术支持联系以获取帮助。”
  19. 重新认识caniuse
  20. 一周新书榜:程序员最受关注的书有这样6本

热门文章

  1. python数据驱动:基于ddt的数据驱动测试
  2. Unity Dropdown 图片Option(sprite)
  3. linux 安装安全狗
  4. 广州粤语和Hong Kong粤语区别整理
  5. 【Luogu】B2119 删除单词后缀
  6. seetaface2例程移植至Qt
  7. 读书笔记:《了不起的盖茨比》
  8. 推荐几本学习c++的靠谱书
  9. java基于ssm+vue二手手机销售平台
  10. 哪个室内导航地图好用?画地图用什么软件好?