千家信息网

vue中如何实现长列表性能优化

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍vue中如何实现长列表性能优化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!长列表性能优化1. 不做响应式比如会员列表、商品列表之类的,只是纯粹的数据展示,不会
千家信息网最后更新 2025年01月20日vue中如何实现长列表性能优化

这篇文章主要介绍vue中如何实现长列表性能优化,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

长列表性能优化

1. 不做响应式

比如会员列表、商品列表之类的,只是纯粹的数据展示,不会有任何动态改变的场景下,就不需要对数据做响应化处理,可以大大提升渲染速度

比如使用 Object.freeze() 冻结一个对象,MDN的描述是 该方法冻结的对象不能被修改;即不能向这个对象添加新属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值,以及该对象的原型也不能被修改

export default { data: () => ({   userList: []}), async created() {   const users = await axios.get("/api/users");   this.userList = Object.freeze(users);}};

Vue2 的响应式源码地址:src/core/observer/index.js - 144行 是这样的

export function defineReactive (...){   const property = Object.getOwnPropertyDescriptor(obj, key)   if (property && property.configurable === false) {       return  }   ...}

可以看到一开始就判断 configurable 为 false 的直接返回不做响应式处理

configurable 为 false 表示这个属性是不能被修改的,而冻结的对象的 configurable 就是为 false

Vue3 里则是添加了响应式flag,用于标记目标对象类型

2. 虚拟滚动

如果是大数据很长的列表,全部渲染的话一次性创建太多 DOM 就会非常卡,这时就可以用虚拟滚动,只渲染少部分(含可视区域)区域的内容,然后滚动的时候,不断替换可视区域的内容,模拟出滚动的效果

 

原理是监听滚动事件,动态更新需要显示的 DOM,并计算出在视图中的位移,这也意味着在滚动过程需要实时计算,有一定成本,所以如果数据量不是很大的情况下,用普通的滚动就行

以上是"vue中如何实现长列表性能优化"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

对象 属性 内容 数据 性能 区域 动态 篇文章 处理 很大 普通 一次性 不断 事件 价值 会员 兴趣 原型 原理 只是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 美国的网络安全股票 地址数据类型数据库 服务器在国外如何加速 手机网络安全密匙忘了 热血传奇为什么找不到原来服务器 网络安全问题整改情况 本地服务器有哪些软件 数据库与访问技术有哪些问题 如何估算软件开发量 服务器管理器禁止打开文件 数据库列表无法打开 华为全球最大数据库 网络安全工程师考题 服务器怎么消除勒索病毒 监控保存多长时间网络安全法 取消服务器的用户名是什么 戴尔服务器磁盘缓存 苹果自带邮件收件服务器主机名 8兆专线物理服务器多少钱 牟平区微信小程序软件开发 武汉网络安全基地主任周 合肥市软件开发培训哪家靠谱 我的世界服务器禁红石 网络安全产品规划与分类 服务器负载高怎么解决 哈铁计算机网络技术专业好么 网络安全风险防范方法 软件开发理念英语 维普科技期刊数据库官网首页 山东千诺网络技术有限公司
0