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

js逻辑:【增量更新机制】

增量更新机制:在数据发生变化时,只对变化的部分进行更新的策略,而不是每次都重新处理全部数据,即:在数据发生变化时,只对变化的部分进行更新的策略,而不是每次都重新处理全部数据

watch: {baseLayerList: {deep: true,handler(newVal, oldVal = []) {// 使用Map来记录旧值中已处理的项,避免重复处理const oldItemsMap = new Map();// 将旧数据中的所有 subItem 提取出来并以 .id 为键存入 Map,便于后续快速查找oldVal.forEach(zxItem => {zxItem.list.forEach(subItem => {oldItemsMap.set(subItem.id, subItem); // 假设每个subItem有唯一id});});// 遍历新数据并判断是否新增newVal.forEach(zxItem => {zxItem.list.forEach(subItem => {// 只有当isShow从false变为true,且没有layer时才处理 const oldSubItem = oldItemsMap.get(subItem.id); // 当前项是“要显示”的 && (之前不存在该 ID 的项(首次出现) || 之前存在但状态不是“显示”) 才会触发 addJiChuMark 方法。if (subItem.isShow &&(!oldSubItem || !oldSubItem.isShow)) {this.addJiChuMark(subItem);}});});}},}

逻辑分析:

const oldItemsMap = new Map();
oldVal.forEach(zxItem => {zxItem.list.forEach(subItem => {oldItemsMap.set(subItem.id, subItem);});
});oldVal = [{ list: [ { id: 'a', isShow: false }, { id: 'b' } ] },{ list: [ { id: 'c' } ] }
]
====>
oldItemsMap = {'a' => { id: 'a', isShow: false },'b' => { id: 'b' },'c' => { id: 'c' }
}
http://www.lryc.cn/news/574221.html

相关文章:

  • STM32 串口通信②:蓝牙模块HC-05控制单片机
  • 国产免费的k8s管理平台
  • 相机标定与3D重建技术通俗讲解
  • springboot开发项目 SLF4J+Logback日志框架集成【最终篇】
  • 用 EXCEL/WPS 实现聚类分析:赋能智能客服场景的最佳实践
  • Linux笔记---线程控制
  • 用安卓手机,怎样远程管理孩子iPhone屏幕使用时间?
  • 新高考需求之一
  • uniapp+vue3做小程序,获取容器高度
  • 世赛背景下,高职物联网应用开发赛项实训解决方案
  • 2025年小程序地图打车的5大技术革新:实时路况预测与智能调度升级
  • 【Docker基础】Docker容器管理:docker pause详解
  • 【文件】Linux 内核优化实战 - fs.inotify.max_user_watches
  • 用DeepSeek完成实际生产编程完整项目
  • 树莓派超全系列教程文档--(66)rpicam-apps可用选项介绍之视频选项
  • [论文阅读] 人工智能 + 软件工程 | AI 驱动工具在软件质量保证中的革新:挑战与未来之路
  • 物联网的全球布局与未来趋势
  • 【Golang玩转MCP】-实现一个加减乘除MCP服务
  • 1 Studying《Systems.Performance》7-13
  • 数据赋能(313)——合作共享——跨界融合
  • Modbus TCP转Profibus DP网关与JF - 600MT称重变送器在STEP 7快速配置
  • 计算机操作系统(十六)进程同步
  • DMDRS部署实施手册(ORACLE=》DM)
  • Long类型返回给前端精度丢失问题(解决方案)
  • AWS S3服务器访问日志启用
  • RAG实战基础篇/windows电脑快速部署qwen3:14B
  • Python Arrow 库详解:更智能的日期时间处理
  • 制造业B端页面个性化设计案例:生产流程监控的专属布局打造
  • 探秘 Java 安全利器 ——JVMTI
  • 揭开 Git 裸仓库的神秘面纱:`git clone --mirror` 详解与使用指南