基于vue项目的代码优化

news2024/7/7 16:05:52

前言

项目上线后其整体性能的优良是用户也是研发人员所关注的。项目优化非常重要,一丝一毫的提升都是对用户的负责。因此我们在开发中就应该注重细节,优化工作从日常开发做起。本篇文章就分享一些在日常开发中代码层面的优化手段。

开发常用优化手段

1、优先使用 v-if

v-if 和 v-show 都可以控制一个元素的显示与隐藏。区别是: v-if 是创建/销毁DOM来实现效果的;v-show 是通过 CSS 的 display 样式来操作的,会预渲染 DOM 。在开发中,除了需要预渲染或者需要频繁切换显示状态的情况,其他情况尽量使用v-if

2、v-for 和 v-if 不要一起使用

v-for 的优先级在 vue2 中比 v-if 高,所以在 vue2 项目中当两个指令出现在一个 DOM 上时,通过 v-for 渲染列表,每一次都需要进行一次 v-if 的判断。如果列表数据过多,就会造成一定的性能损耗。

解决方案:

① 如果是需要判断是否渲染这个列表,那么我们可以通过在循环外层包裹一层 template 来先进行判断。代码示例如下:

 

② 如果 v-if 是为了筛选需要遍历的数据,那么我们可以在计算属性中做筛选数据的逻辑,返回一个符合条件的列表数据,并在 DOM 中直接使用这个数据即可。代码示例如下:

3、长列表优化

在项目开发中,很多时候需要列表展示,其数据条数可达上千甚至上万条。

如果数据体量较大,一次性查询会特别慢,影响用户体验,目前的解决方案是分页查询,先查询近20条数据,同时监听滚动条的位置,当发现滚动条滚动到列表底部时继续请求后端接口获取下20条数据。

 

这种方案能够解决目前查询较慢的问题,但是还有优化的空间,随着不断滚动,数据会越来越多,大量DOM存在难免给客户端造成一定的压力,这时可以考虑虚拟列表的实现方案。

4、及时释放组件资源

及时释放不必要的资源也是一种常见的优化手段。我们在组件中使用定时器 setInterval 时,就会开辟一块资源空间给这个定时器使用,如果销毁组件时不手动释放掉这块空间,那么组件销毁后它们依旧会占用一部分资源。这就导致了没有必要的资源浪费,尤其是整个项目中存在多个这种现象时。所以当一个组件销毁后,尽量把我们开辟出来的资源块也销毁掉

 

5、图片懒加载

当页面中存在大量图片时,对图片的优化处理是刻不容缓的,这能大大提升用户体验。vue就有提供 vue-lazyload 插件供我们直接使用,用起来还是很方便的。

 

最后

性能优化手段颇多,可以借助工具,结合实际情况针对性优化。本文列举了几点在开发中的常用优化手段,供大家参考。作为开发人员,我们应该在日常项目中养成良好的编码习惯,高内聚低耦合,避免无用代码。这些比任何后期的工作都要来得实在。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

04-Docker-容器数据卷

目录 一、坑!!!! 二、什么是容器卷 三、容器卷的作用 四、容器卷案例 1、宿主vs容器之间映射添加容器卷 五、容器卷ro和rw规则 一、坑!!!! 容器卷记得加入 --privilegedtrue …

2022-11-30 Github Forking 工作流模式

Forking 工作流 fork 操作是在个人远程仓库新建一份目标远程仓库的副本,流程如下: 比如在 GitHub 上操作时,在项目的主页点击 fork 按钮(页面右上角),即可拷贝该目标远程仓库。 假设开发者 A 拥有一个远程仓…

HTML网页设计制作大作业(游戏主题)---电竞

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 游戏官网 | 游戏网站 | 电竞游戏 | 游戏介绍 | 等网站的设计与制作 | HTML期末大学生网页设计作业,Web大学生网页 HTML:结构 …

《MongoDB》Mongo Shell中的基本操作-文档查询

前端博主,热衷各种前端向的骚操作,经常想到哪就写到哪,如果有感兴趣的技术和前端效果可以留言~博主看到后会去代替大家踩坑的~ 主页: oliver尹的主页 格言: 跌倒了爬起来就好~ 来个关注吧,点个赞…

在Word、WPS中插入AxMath公式导致行间距异常的解决办法

引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常,如下图所示: 查遍互联网,最有效的办法竟然要取消文档网格对齐,这对于一些严格要求的场合是非常不利的,经过我的尝试&#…

xss-labs/level15

因为前一关打不开了 所以直接跳到15关来 查看源代码 他的输出点位于属性值处 所以要想通过<script></script>实现弹窗效果的话 那么就要逃离属性值 那么势必要闭合引号 根据以上的分析 我们做出如下构造 "><script>alert(xss)</script>// …

使用 Mason 创建自己的 Flutter brick

使用 Mason 创建自己的 Flutter brick 原文 https://medium.com/gytworkz/create-your-own-flutter-brick-using-mason-7abc70d0324e 前言 谁不喜欢用最少的努力完成大部分事情呢&#xff1f;我当然知道! &#xff01;Mason 帮我完成了几个简单的步骤。 在本文中&#xff0c;我…

观察者(订阅)模式

文章目录思考观察者模式1.观察者模式的本质2.何时选用观察者模式3.优缺点4.实现手写观察者模式JDK观察者模式思考观察者模式 观察者模式是典型的发布订阅模式&#xff0c;当一个东西有变化了&#xff0c;就通知所有订阅他的人 1.观察者模式的本质 观察者模式的本质:触发联动。 …

什么是等保

等保的全称是信息安全等级保护&#xff0c;是《网络安全法》规定的必须强制执行的&#xff0c;保障公民、社会、国家利益的重要工作。以下是一些有关等保的基本知识&#xff0c;希望通过这些知识能让大家更深刻地认识到等级保护的重要性。 等级保护定义 信息安全等级保护是指…

2.Conv2d实现

[C 基于Eigen库实现CRN前向推理] 第二部分&#xff1a;Conv2d实现 前言&#xff1a;(Eigen库使用记录)第一部分&#xff1a;WavFile.class (实现读取wav/pcm,实现STFT)第二部分&#xff1a;Conv2d实现第三部分&#xff1a;TransposedConv2d实现 (mimo,padding,stride,dilatio…

智工教育:注册计量师职业资格条件已改革!

第一&#xff0c;报名条件发生变化 注册计量师职业资格考试&#xff0c;取消了一级注册计量师职业资格考试报考条件中对工作年限的要求。 凡遵守中华人民共和国宪法、法律、法规&#xff0c;恪守职业道德&#xff0c;诚实守信&#xff0c;从事计量技术工作&#xff0c;符合注册…

Codeforces Round #290 (Div. 2) C. Fox And Names

翻译&#xff1a; Fox Ciel将发表一篇关于FOCS (Fox操作的计算机系统&#xff0c;发音:“Fox”)的论文。她听到一个谣言:报纸上的作者名单总是按照词典顺序排列的。 在查看了一些例子后&#xff0c;她发现有时这不是真的。在一些论文中&#xff0c;作者的名字没有按照正常意义…

【无人机】四轴无人机的轨迹进行可视化和动画处理(Matlab代码实现)

&#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;⛳️⛳️⛳️ ​ 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 随着传感器检测技术、智能控制技术和材料技术的快速发展,四轴无人机及其配套系统的发展越来越成熟。无人机遥感系统具有成本低、…

Java数据结构之Map与Set

文章目录一、搜索&#xff08;一&#xff09;概念及场景&#xff08;二&#xff09;模型二、Map&#xff08;一&#xff09;介绍&#xff08;二&#xff09;Map常用方法说明1.需要注意的几个点2.特别注意的几个方法(1)V getOrdefault(Object key,V defaultValue)&#xff0c;这…

【DL with Pytorch】第 5 章 :风格迁移

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

[JavaEE]计算机是如何工作的

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1. javaEE概述 2. 计算机发展史 3. 冯诺依曼体系 …

java面试强基(15)

说明一下public static void main(String args[])这段声明里每个关键字的作用? ​ public: main方法是Java程序运行时调用的第一个方法&#xff0c;因此它必须对Java环境可见。所以可见性设置为 pulic. ​ static: Java平台调用这个方法时不会创建这个类的一个实例&#xf…

如何将带GPS的网络化的软件定义无线电接收机应用于分布式和移动频谱监测?(二)

GPS定位和测向的四种技术 知道感兴趣信号的位置对于许多应用很重要。军事用户获得了更好的态势感知能力&#xff0c;诸如机场或公用事业基础设施之类的敏感设施可以找到RF干扰源&#xff0c;电信公司可以识别恶意发射机或其他干扰其覆盖范围的设备。通过嵌入式GPS功能了解测量…

中国什么时候能办世界杯?

自从1930年在乌拉圭举办了第一届世界杯以来&#xff0c;到现在已经成功举办了22届&#xff0c;然而这22届里&#xff0c;光是欧洲就举办了11届&#xff0c;南美洲5届&#xff0c;中北美洲3届&#xff0c;亚洲2届&#xff0c;非洲1届。 说到这里不难发现&#xff0c;他们之间分布…

Azure DevOps Server 用户组加入 Azure AD Domain Service 管理用户

一&#xff0c;引言 今天我们继续讲解 Azure DevOps Server 的内容&#xff0c;对于管理用户组除了在 Azure DevOps Server 服务器上添加管理员方式外&#xff0c;还有没有其他方式&#xff0c;Azure DevOps 需要加入Azure ADDS 服务域后&#xff0c;Azure DevOps Server 的管理…