当前位置: 首页 > news >正文

vue 性能优化

data 层级不要太深

data 层级太深会增加响应式监听的计算,导致页面初次渲染时卡顿。

合理使用 v-show 和 v-if

  • 频繁切换时,使用 v-show
  • 无需频繁切换时,使用 v-if

合理使用 computed

computed 有缓存,data 不变时不会重新计算,可以避免不必要的计算,从而提升性能

v-for 中加 key

diff 算法中会将 tag 和 key 相同的标签视为同一节点,从而避免不必要的渲染。
若无 key ,则 v-for 中的所有节点,都会删除后重新渲染,非常耗费性能!

避免 v-for 和 v-if 同时使用

v-for 的优先级高于 v-if ,同时使用时,会导致每次遍历时,都触发一次 v-if 判断,造成大量不必要的渲染。

及时销毁自定义事件、DOM 事件、计时器

在 beforeDestory 生命周期中执行,避免内存泄露,页面会越来越卡,最终卡死。

合理使用异步组件

  • 加载大组件,如图表、富文本编辑器等
  components: {// 异步加载子组件(如 v-if 的值为true 时,才开始加载此组件,减少了页面初次渲染的时间),特别适用于耗时的复杂大型组件,如富文本编辑器等。Child: () => import("./child.vue"),},
  • 路由异步加载
{path: '/dic',name: '速查手册', component: () => import('./dic/index')},

合理使用缓存组件 keep-alive

需要缓存组件时使用,如多个静态 tab 页的切换,可以避免不必要的渲染,提升 vue 性能。

详见博文 https://blog.csdn.net/weixin_41192489/article/details/112875654

使用 vue-loader 在开发环境做模板编译(预编译)

webpack 层面的优化

待补充

前端通用的性能优化,如图片懒加载

详见 https://blog.csdn.net/weixin_41192489/article/details/136497854

使用服务端渲染 SSR

相关文章:

vue 性能优化

data 层级不要太深 data 层级太深会增加响应式监听的计算,导致页面初次渲染时卡顿。 合理使用 v-show 和 v-if 频繁切换时,使用 v-show无需频繁切换时,使用 v-if 合理使用 computed computed 有缓存,data 不变时不会重新计算&…...

互联网大厂ssp面经(操作系统:part1)

1. 什么是进程和线程?它们之间有什么区别? a. 进程是操作系统中运行的一个程序实例。它拥有独立的地址空间和资源,可以独立执行。 b. 线程是进程内的一个执行单元,一个进程可以包含多个线程。 c. 线程共享进程的资源,…...

Android Activity 启动涉及几个进程

Zygote进程: Zygote进程在Android系统启动时被初始创建,并且初始化了虚拟机(Dalvik或ART),预加载了Android系统的核心类库。所有的Android应用进程都是通过fork()从Zygote进程派生出来的,这允许应用快速启动&#xff0…...

说说你对链表的理解?常见的操作有哪些?

一、是什么 链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的,由一系列结点(链表中每一个元素称为结点)组成 每个结点包括两个部分&…...

每天五分钟深度学习:逻辑回归算法的损失函数和代价函数是什么?

本文重点 前面已经学习了逻辑回归的假设函数,训练出模型的关键就是学习出参数w和b,要想学习出这两个参数,此时需要最小化逻辑回归的代价函数才可以训练出w和b。那么本节课我们将学习逻辑回归算法的代价函数是什么? 为什么不能平方差损失函数 线性回归的代价函数我们使用…...

llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署

文章目录 简介支持的模型列表2. 添加自定义数据集3. lora 微调4. 大模型 lora 权重,部署问题 参考资料 简介 文章列表: llama-factory SFT系列教程 (一),大模型 API 部署与使用llama-factory SFT系列教程 (二),大模型在自定义数…...

C语言游戏实战(11):贪吃蛇大作战(多人对战)

成果展示: 贪吃蛇(多人对战) 前言: 这款贪吃蛇大作战是一款多人游戏,玩家需要控制一条蛇在地图上移动,吞噬其他蛇或者食物来增大自己的蛇身长度和宽度。本游戏使用C语言和easyx图形库编写,旨在…...

腾讯测试岗位的面试经历与经验分享【一面、二面与三面】

腾讯两个月的实习一转眼就结束了,回想起当时面试的经过,感觉自己是跌跌撞撞就这么过了,多少有点侥幸.马上腾讯又要来校招了,对于有意愿想投腾讯测试岗位的同学们,写了一些那时候面试的经历和自己的想法,算不上经验,仅供参考吧! 一面 — —技术基础,全面…...

手机移动端网卡信息获取原理分析

有些场景我们需要获取当前手机上的网卡信息(如双卡双待、Wifi等)。本文准备研究一下这块的原理,以便更好的掌握相关技术原理。 1、底层系统接口 getifaddrs 使用 getifaddrs 接口可以达到我们的目的,该接口会返回本地所有网卡的信…...

无人新零售引领的创新浪潮

无人新零售引领的创新浪潮 在数字化时代加速演进的背景下,无人新零售作为商业领域的一股新兴力量,正以其独特的高效性和便捷性重塑着传统的购物模式,开辟了一条充满创新潜力的发展道路。 依托人脸识别、物联网等尖端技术,无人新…...

SD-WAN提升企业网络体验

在现代企业中,网络体验已成为提升工作效率与业务质量的关键因素。SD-WAN技术的出现,以其独特的优势,为企业提供了优化网络连接、加速数据传输、提升服务质量和应用访问体验,以及增强网络稳定性的解决方案。接下来,我们…...

Docker搭建Let‘s Encrypt

Let’s Encrypt是一个免费、开放和自动化的证书颁发机构(CA),它提供了一种简单、无需重复的机制来获取和更新SSL/TLS证书。Let’s Encrypt Docker镜像允许用户在容器化环境中轻松部署和使用Let’s Encrypt的服务。 主要功能包括:…...

单链表讲解

一.链表的概念以及结构 链表是一种物理结构上不连续,逻辑结构上连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表的结构与火车是类似的,一节一节的,数据就像乘客一样在车厢中一样。 与顺序表不同的…...

DFS算法系列 回溯

DFS算法系列-回溯 文章目录 DFS算法系列-回溯1. 算法介绍2. 算法应用2.1 全排列2.2 组合2.3 子集 3. 总结 1. 算法介绍 回溯算法是一种经典的递归算法,通常被用来解决排列问题、组合问题和搜索问题 基本思想 从一个初始状态开始,按一定的规则向前搜索&…...

Linux C应用编程:MQTT物联网

1 MQTT通信协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传 输)是一种基于客户端-服务端架构的消息传输协议,如今,MQTT 成为了最受欢迎的物联网协议,已广泛应用于车联网、智能家居、即时聊…...

企业常用Linux文件命令相关知识+小案例

远程连接工具无法连接VMWARE: 如果发现连接工具有时连不上,ip存在,这时候我们查看网络编辑器,更多配置,看vnet8是不是10段,nat设置是否是正确的? 软件重启一下虚机还原一下网络编辑器 查看文件…...

Istio介绍

1.什么是Istio Istio是一个开源的服务网格(Service Mesh)框架,它提供了一种简单的方式来为部署在Kubernetes等容器编排平台上的微服务应用添加网络功能。Istio的核心功能包括: 服务治理:Istio能够帮助管理服务之间的…...

代码随想录算法训练营第四十七天|leetcode115、392题

一、leetcode第392题 本题要求判断s是否为t的子序列,因此设置dp数组,dp[i][j]的含义是下标为i-1的子串与下标为j-1的子串相同字符的个数,可得递推公式是通过s[i-1]和t[j-1]是否相等区分。 具体代码如下: class Solution { publ…...

将Ubuntu18.04默认的python3.6升级到python3.8

1、查看现有的 python3 版本 python3 --version 2、安装 python3.8 sudo apt install python3.8 3、将 python3.6 和 3.8 添加到 update-alternatives sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --insta…...

Python和Java哪个更适合后端开发?

Python和Java都是强大的后端开发语言,它们各自有鲜明的特点和适用场景。选择哪一个更适合后端开发,主要取决于具体的项目需求、团队技术栈、个人技能偏好以及长期发展考虑等因素。 下面是两者在后端开发中的优势和劣势: 「Python&#xff1…...

告别sudo!在Ubuntu 20.04桌面版上配置纯root账户登录的详细步骤与深度解析

告别sudo!在Ubuntu 20.04桌面版上配置纯root账户登录的详细步骤与深度解析 在Linux桌面环境中,频繁输入sudo密码已成为许多开发者的日常烦恼。特别是当你在Ubuntu 20.04上进行系统级配置或调试某些图形界面工具时,权限问题常常打断工作流。本…...

终极指南:如何用WebPlotDigitizer让图表数据“开口说话“ - 科研数据提取的革命性工具

终极指南:如何用WebPlotDigitizer让图表数据"开口说话" - 科研数据提取的革命性工具 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/Web…...

Rust CLI工具bard-rs:终端直连Google Gemini并实时保存Markdown对话

1. 项目概述:一个Rust写的Google Gemini命令行工具 如果你和我一样,日常喜欢在终端里干活,同时又需要频繁地和Google Gemini(以前叫Bard)打交道,来回在浏览器和编辑器之间切换、复制粘贴对话内容&#xff…...

基于MCP协议构建AI代理工具服务器:从原理到Rust实战

1. 项目概述:一个为AI代理设计的通用工具服务器最近在折腾AI应用开发,特别是围绕AI Agent(智能体)的生态构建时,发现一个核心痛点:如何让不同的AI模型或框架,安全、便捷地调用外部工具和服务&am…...

SpliceAI终极指南:深度学习剪接变异预测快速入门教程

SpliceAI终极指南:深度学习剪接变异预测快速入门教程 【免费下载链接】SpliceAI A deep learning-based tool to identify splice variants 项目地址: https://gitcode.com/gh_mirrors/sp/SpliceAI 想要了解基因剪接变异如何影响人类健康吗?Splic…...

英雄联盟界面自定义指南:安全合规的个性化展示方案

英雄联盟界面自定义指南:安全合规的个性化展示方案 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 厌倦了千篇一律的英雄联盟客户端界面?想要在不违反游戏规则的前提下展示独特的个人风格?L…...

电子工程白皮书撰写:技术传播与工程实践指南

1. 电子工程白皮书的战略价值与技术传播本质在芯片设计、工业自动化等硬科技领域,技术白皮书早已超越普通文档的范畴,成为连接产品创新与工程决策的关键纽带。我曾参与过37份工业级MCU和功率器件白皮书的创作,其中下载量最高的案例达到行业平…...

ARM GICv3中断控制器架构与优化实践

1. ARM GICv3中断控制器架构概述在现代处理器架构中,中断控制器是连接外设与CPU核心的关键枢纽。ARM架构的通用中断控制器(GIC)经过多代演进,GICv3作为当前主流版本,在虚拟化支持、安全隔离和性能优化等方面实现了显著提升。与早期版本相比&a…...

TypeORM游标分页实战:告别LIMIT OFFSET性能瓶颈

1. 项目概述与游标分页核心价值如果你正在用 TypeORM 开发后端 API,并且被传统的LIMIT/OFFSET分页在数据量变大时带来的性能问题所困扰,那么typeorm-cursor-pagination这个库很可能就是你一直在找的解决方案。我在处理一个用户量超过百万的社交应用项目时…...

构建企业级AI对话后端:多协议集成与插件化架构实战

1. 项目概述:一个为AI对话而生的企业级后端引擎 如果你正在寻找一个能同时对接OpenAI、Google Gemini,还能无缝集成OneBot机器人协议,并且拥有强大插件扩展能力的AI对话后端,那么Mio-Chat-Backend很可能就是你技术栈里缺失的那块…...