Vue项目前端性能优化

前端性能优化指南:Vue.js 项目中的懒加载、缓存与压缩技术 前端性能优化对于提升用户体验和应用性能至关重要。通过合理使用懒加载缓存和压缩懒加载:利用 Vue Router 和动态import()实现按需加载,减少初始加载的资源体积。缓存:通过静态资源缓存、Service Worker 和 HTTP 缓存减少重复请求,提升访问速度。压缩:使用 Webpack 配置压缩 JavaScript、CSS 和图片,减少文件体积,提升加载速度。这些优化措施可以显著改善 Vue.js 应用的性能,帮助开发者打造更流畅的用户界面,从而提升用户满意度和应用的竞争力。 阅读详情

一、vue-router路由懒加载

懒加载是当路由被访问的时候才加载对应组件,而不是在首页就全部加载,以此来提高首页反应速度。

  • 方法和原理
  • require-ensure 
  • 说明: require.ensure在需要的时候才下载依赖的模块,当参数指定的模块都下载下来了(下载下来的模块还没执行),便执行参数指定的回调函数。require.ensure会创建一个chunk,且可以指定该chunk的名称,如果这个chunk名已经存在了,则将本次依赖的模块合并到已经存在的chunk中,最后这个chunk在webpack构建的时候会单独生成一个文件。
  • 语法: require.ensure(dependencies: String[], callback: function([require]), [chunkName: String]) 
    • dependencies: 依赖的模块数组
    • callback: 回调函数,该函数调用时会传一个require参数
    • chunkName: 模块名,用于构建时生成文件时命名使用
  • 注意点:require.ensure的模块只会被下载下来,不会被执行,只有在回调函数使用require(模块名)后,这个模块才会被执行。

示例:

二、打包优化——工程文件打包的时候不生成.map文件

npm run build编译之后,我们查看编译生成的文件,发现有很多.map文件,这些文件占了不小的空间。.map文件的作用是帮助编译后的代码调试,但是我们上线的代码已经调试完成,所以上线时可以不生成.map文件。

修改配置文件如下即可:

三、切换多入口模式

在vue项目中,我们一般使用vue-cli脚手架搭建单页面的web工程。生成的项目结构如下图所示:

main.js是整个单页面应用唯一的入口文件

在大型项目中,单一入口无法满足项目需要,原因有以下两方面:

(1)单一入口无法拆分按模块独立部署,不够灵活

(2)单一入口负载过重,业务模块较多时,点击系统导航菜单频繁切换业务模块,在IE浏览器中,浏览器内存持续上涨,达到             1.5G以上卡顿,浏览器容易崩溃。

基于以上两点原因,大型项目可以采用多入口的模式,好处有以下两点:

(1)满足页面需要分开部署的场景

(2)解决了页面卡顿和内存上涨问题

配置方式参考我的单独讲解多入口配置的博文

四、使用字体图标代替切图

字体图标的优势:

(1)字体图标任意缩放不会失真

(2)在项目中导入后,以css样式引用,相较于传统的图片大大减少请求数量,优化性能

(3)修改方便,如需要切换主题色可由css控制,避免视觉反复切图的工作量

在线生成工具: https://icomoon.io/app/#/select

五、使用雪碧图

雪碧图的优点:

  1. 将多张图片合并到一张图片中,可以减小图片的总大小。
  2. 将多张图片合并成一张图片后,下载全部所需的资源,只需一次请求。可以减小建立连接的消耗。

六、提取公共样式和方法

     1.复用的样式应当提取到公共的样式表中复用

2.公共的方法应当提取到公共的js中复用

3.表单验证的提取

七、控件销毁

1.页面切换释放:

使用的C++控件应当及时销毁

2. $destroy

完全销毁一个实例,清理它与其它实例的连接,解绑它的全部指令及事件监听器。

 

八、定时器销毁

路由离开及时销毁定时器

 

九、解绑事件

路由离开及时解绑事件:

vm.$off()

十、vue中使用keep-alive

vue2.0提供了一个keep-alive组件,用来缓存组件,避免多次加载相应的组件,减少性能消耗,但keep-alive是一把双刃剑,确实需要缓存组件的时候才使用。

<keep-alive>

<component>

  <!-- 组件将被缓存 -->

</component>

</keep-alive>

十一、代码层面的优化

1、v-show,v-if 用哪个?

(1)只要涉及到权限相关的展示无疑要用 v-if

(2)在没有权限限制时根据用户点击的频次选择,频繁切换的使用 v-show,不频繁切换的使用 v-if(减少页面中 dom 数量)

2、不要在模板里面写过多的表达式与判断

  v-if="isShow && isAdmin && (a || b)",这种表达式虽说可以识别,但是不是长久之计,当看着不舒服时,适当的写到 methods 和 computed 里面封装成一个方法,这样的好处是方便我们在多处判断相同的表达式,其他权限相同的元素再判断展示的时候调用同一个方法即可。

3、循环调用子组件时添加 key

  key 可以唯一标识一个循环个体,可以使用例如 item.id 作为 key,假如数组数据是这样的 ['a' , 'b', 'c', 'a'],使用 :key="item" 显然没有意义,更好的办法就是在循环的时候 (item, index) in arr,然后 :key="index"来确保key 的唯一性。不设置key值时vue会抛出警告。

4、遵守编码规范

语义化标签,避免乱嵌套,合理命名属性,使用高效简洁的css选择器等等

5、合理利用vue生命周期

减少在created生命周期中做ajax请求,而是放在mounted生命周期中,以不阻塞页面生成dom

十二、iframe的内存释放

相关资料称IE在iframe元素的回收方面存在着bug,需要手动将其释放以避免内存泄漏

释放方法:手动将iframe指向置空

 

前端Vue.js项目的性能优化之CSS优化 本指南旨在为Vue.js开发者提供全面的CSS性能优化方案,覆盖从代码编写规范到构建工具配置的全链路优化策略。重点解决CSS阻塞渲染、冗余样式计算、GPU过度消耗等核心性能问题。本文采用"原理分析->优化策略->工程实践"的递进式结构,结合Vue CLI项目进行实战演示。FCP(First Contentful Paint):首次内容渲染时间CLS(Cumulative Layout Shift):累积布局偏移CSSOM(CSS Object Model):CSS对象模型。 阅读详情

相关推荐

前端Vue.js项目的性能优化之缓存策略

在当今的前端开发中,Vue.js凭借其简洁易用的特点受到了广泛的欢迎。然而,随着项目规模的不断扩大,性能问题逐渐凸显。本文的目的就是深入探讨如何通过缓存策略来优化Vue.js项目的性能,范围涵盖了组件缓存、数据缓存等常见的缓存应用场景。本文首先会介绍缓存策略相关的核心概念,包括它们之间的联系和原理架构;接着详细阐述核心算法原理和具体操作步骤,通过数学模型和公式加深理解;然后给出项目实战的代码案例和详细解释;再探讨实际应用场景、推荐相关工具和资源;最后分析未来发展趋势与挑战,并进行总结和提出思考题。

小白菜的博客 848

知识篇:(二)vue前端开发中的最佳实践与性能优化的10个技巧含方案

通过压缩和合并CSS和JavaScript文件,减少文件的数量和大小,以提高页面加载速度。

一名热衷于技术的全栈开发者,专注于前端与后端的全面技术探索。在这里,我将分享我在技术领域的学习与成长,助力更多开发者的进步。 1880

AAAI2024最佳解读|FontDiffuser One-Shot Font Generation via Denoising Diffusion with Multi-Scal

本文提出了一种名为FontDiffuser的基于扩散的单次字体生成方法,旨在通过去噪扩散模型生成模仿参考图像风格的字体,同时保留源图像的内容。尽管现有的字体生成方法在性能上取得了一定的进展,但在处理复杂字符和大风格变化时仍面临挑战。FontDiffuser通过引入多尺度内容聚合(MCA)模块,有效结合不同尺度的全局和局部内容线索,从而增强复杂字符的笔画保留能力。此外,文章还提出了一种风格对比细化(SCR)模块,用于风格表示学习,利用风格提取器从图像中分离风格,并通过精心设计的风格对比损失来监督扩散模型。

haimianxiaobao11的博客 1192

最全 Vue 性能优化方案

当涉及到Vue应用的性能优化时,有许多技术和策略可以帮助提升应用的性能并改善用户体验。以下总结了常用的十种Vue的性能优化方案。

再渺小的星光,也有属于它的光芒 7805

在mdk文件移植太多_XCubeClassB代码 的移植

前言ST在www.st.com官网上提供了针对IEC60730/IEC60335 ClassB认证的软件包。软件包分为三个,分别适用STM8,STM32(基于标准外设库)和STM32(基于HAL库):STM8-SafeCLASSB,STM32-CLASSB-SPL,X-CUBE-CLASSB。本文以X-CUBE-CLASSB为例介绍如何做代码的移植以及经常遇到的问题的解决办法。X-CUB...

weixin_28898707的博客 1832

VirtualBox安装Win10虚拟机超详细教程(附微软官方镜像下载)

本文提供了一份详细的VirtualBox安装Win10虚拟机教程,涵盖从环境准备、工具下载到系统安装与初始配置的全过程。特别推荐使用微软官方镜像下载,确保系统纯净安全。此外,还分享了性能优化技巧和常见问题解决方案,帮助用户高效搭建稳定的Windows测试环境。

weixin_29243279的博客 918

Vue的性能优化常用的有哪些?

Vue性能优化包括减少数据量、合理使用v-if和v-for、懒加载组件和图片、优化路由、缓存、压缩代码、骨架屏等。同时需注意对象层级不宜过深、合理使用computed和watch、避免内存泄漏。整合这些方法可以显著提升Vue应用性能。

星辰迷上大海的博客 2899

记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL

【代码】记录——影刀RPA高级操作题(二)——使用影刀RPA内置包和”Xpath“获取数据,获取数据写入目标MySQL。

m0_74824002的博客 842

Vue 前端项目性能优化方案

vue前端性能优化

weixin_50367873的博客 896

数字IC后端时序违例修复:setup/hold冲突与时钟树优化实战

时序收敛是数字IC后端设计中最关键的环节之一,直接影响芯片能否在目标频率下稳定工作。建立时间与保持时间的本质是寄存器对数据稳定性的物理约束,而实际工程中,setup违例和hold违例往往此消彼长,冲突的根源在于数据路径与时钟路径的延迟匹配。时钟树综合(CTS)作为连接逻辑与物理的关键步骤,其skew、insertion delay和transition的优化直接决定了时序修复的成败。通过useful skew技术、合理的单元替换和路径结构调整,可以系统性地解决setup/hold冲突,实现时序收敛。本文结合

weixin_28292761的博客 222

apollo-慢速车向左绕行

当主车前方出现其他车辆时,通过左侧车道对前车绕行。

是菜鸟o的博客 309

前端项目性能优化方案有哪些

前端项目性能优化方案汇总

m0_51060602的博客 4万+

UEFI 基础教程 (零) - 目录

UEFI 基础教程 (十八) — UEFI Build Process简单分析。UEFI 基础教程 (十五) — 获取UEFI MemoryMap。UEFI 基础教程 (六)   —  PROTOCOL 简单使用。UEFI 基础教程 (十)   —  FileIO 简单使用。UEFI 基础教程 (一)   —  搭建UEFI开发环境。UEFI 基础教程 (九)   —  EVENT 简单使用。UEFI 基础教程 (七)   —  HOB 简单使用。UEFI 基础教程 (八)   —  PCD 简单使用。..

技术联盟 1536

前端Vue 项目性能优化

代码层面、webpack层面、web技术层面: Vue 项目性能优化:

thewar196的博客 5880

YOLO26改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头

本文记录的是基于移动倒置瓶颈 MBConv 的 YOLO26 的检测头轻量化改进方法研究。采用了独特的倒置瓶颈结构,通过的操作以及,在高效提取特征的同时极大地降低了计算量。本文将的设计优势融入j检测头中,使其在目标检测任务中不仅能够更精准地识别各类目标,还能在计算资源有限的情况下快速响应,展现出更为卓越的实时检测能力。EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks的实现代码如下: 首先在代码中加入如下代码: 其

Limiiiing的博客 286

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

《Vue 项目前端动画性能优化实战:从卡顿到丝滑的全面指南》

通过以下策略实现 Vue 动画性能的全面提升:懒加载动画组件 + 资源压缩。优先使用 CSS 动画 + 减少重排重绘。Autoprefixer 自动补全 + 特性检测降级。最后建议:在复杂场景中结合 **Vue 过渡模式**和 **Web Workers**(用于计算密集型任务),将动画性能优化推向极致。

weixin_45633650的博客 2484

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【前端优化 & Vue项目优化】 如何避免浏览器卡顿,实现性能优化cdn?

前端优化, Vue项目优化, 教你如何避免浏览器卡顿,实现性能优化cdn

业余丰富各种技术栈 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

前端Vue项目打包性能优化方案

文章目录一.前言二.优化方案1丶路由懒加载(代码分割)2丶第三方插件按需加载 一.前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 DOM 以及如何最高效地操作 DOM;但 Vue 项目中仍然存在项目首屏优化、Webpack 编译配置优化等问题,所以我们仍然需要去关注 Vue 项目性能方面的优化,使项目具有更高效的性能、更好的用户体验。 二.优化方案 以下将从5个方面来说明vue项目的优化解决方案 1丶路由懒加载(代码分

m0_51637686的博客 8511

vue 项目中的前端性能优化

vue 项目中的前端性能优化

weixin_37795155的博客 849

探索前端新纪元:Vue.js与Rails的完美碰撞 —— vuejs-rails开源项目推荐

探索前端新纪元:Vue.js与Rails的完美碰撞 —— vuejs-rails开源项目推荐 随着Web开发的日益复杂,前端框架的选择显得尤为重要。今天,我们要向您推荐的是一个将现代前端神器Vue.js与成熟的Ruby on Rails框架紧密结合的开源项目——vuejs-rails。 项目介绍 vuejs-rails 是一款专为 Rails 3.1 及更高版本设计的资产管线 gem,它使得在Ra...

gitblog_00568的博客 1474

front-end:前端开发者的知识库与资源汇总

front-end:前端开发者的知识库与资源汇总 项目介绍 在现代Web开发领域,前端工程师扮演着至关重要的角色。Front-end Developers 是一个专门为前端开发者设计的开源项目,旨在提供丰富的教程、参考资料以及开发工具,帮助前端开发者提升技能、拓宽知识面。该项目汇集了来自世界各地的资源和经验,是前端开发者学习和成长的宝贵资料库。 项目技术分析 Front-end Developer...

gitblog_01059的博客 759

vue项目性能优化,前端高级开发

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】转存中…(img-coTaAeHb-1711800282218)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

2401_83977626的博客 800

2025前端性能优化实战:3个立竿见影的Vue项目加速方案

2025前端性能优化实战:3个立竿见影的Vue项目加速方案

qq_43086723的博客 581

前端架构知识体系:Vue 项目架构设计、性能优化与 CI/CD 全流程

前端架构设计全流程解析 本文系统阐述了企业级Vue项目从技术选型到部署上线的架构设计全流程。技术选型推荐Vue3+Pinia+Vite组合,搭配ElementPlus或Vant组件库,通过ESLint+Prettier+Stylelint保障代码规范。架构设计层面,提出RBAC/ABAC权限方案、微前端集成策略,并详细列举性能优化手段(懒加载、CDN、虚拟滚动等)。部署环节构建Jenkins+GitLab的CI/CD流水线,强调Docker容器化与蓝绿发布策略。

用于分享前端相关的知识和架构体系 1303
上一篇: 前端路由
下一篇: Echarts绘制极坐标系下的多色柱状图
小天使娜娜
博客等级 码龄8年 103粉丝 41原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值