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.pswp.cn/pingmian/85991.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85991.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85991.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳解Redis的LUA腳本、管道 (Pipelining)、事務事務 (Transactions)

1. 管道 (Pipelining) 網絡延遲 (Round-Trip Time - RTT) 瓶頸。 在傳統模式下,客戶端發送一個命令 -> 等待 Redis 服務器處理并返回結果 -> 再發送下一個命令。如果客戶端需要執行大量命令(例如設置或獲取多個鍵),每個命令…

SIP 協議中的定時器

SIP(Session Initiation Protocol) 是一種信令協議,廣泛用于建立、維持和終止多媒體會話(如VoIP通話)。作為基于UDP等不可靠傳輸的協議,SIP 通過多個定時器機制來確保消息的可靠傳輸和狀態機的正常運行。 …

【機器學習深度學習】偏置項(Bias)概念

目錄 前言 一、先說結論:偏置項是“默認起點” 二、類比理解 類比 1:老師給學生的“基礎分” 類比 2:預測房價時的“固定成本” 三、沒有偏置項的模型,會有什么問題? 四、在神經網絡中,偏置項是神經…

使用數組 海選女主角

問題描述 面試那天,剛好來了m * n個MM,站成一個m * n的隊列,副導演Fe(OH)2為每個MM打了分數,分數都是32位有符號整數。 一開始我很納悶:分數怎么還有負的?Fe(OH)2解釋說,根據選拔規則&#xff…

從0開始學習R語言--Day29--社交網絡分析

在探尋數據之間的關系時,由于數據類型的限制,很多時候我們可以從數據的現實角度出發去選擇方法,而不是一昧地從頭嘗試不同方法去分類。假如我們用的是傳染病在市面上的傳播路徑數據,亦或是病毒對于基因的感染模塊,就可…

一款基于 React 的開源酷炫動畫庫

React Bits 是一個開源的交互式 React 組件庫,包含一系列動畫化、交互式且完全可定制的 React 組件,用于構建令人驚艷且難忘的用戶界面,可幫助開發者在 React 應用中輕松實現各種動畫效果。它提供了超過70種動畫組件,分為文本動畫…

深入理解前端理念bundleless

Bundleless 是一種新興的前端開發趨勢,它的核心思想是減少或完全去除傳統的打包步驟,直接利用瀏覽器對現代 JavaScript 特性(尤其是 ES 模塊)的原生支持。這一趨勢背后的推動力包括現代瀏覽器的進步、開發者對更快開發反饋的需求以及更簡單的開發流程。以下是對 bundleless…

馬斯克YC技術核彈全拆解:Neuralink信號編譯器架構·星艦著陸AI代碼·AGI防御協議(附可復現算法核心/開源替代方案/中國技術對標路徑)

一、Neuralink技術棧深度剖析 ? 神經信號編譯架構(基于已公開專利US20220369936) 關鍵算法實現: # 運動意圖解碼核心(簡化版) import numpy as np from sklearn.ensemble import RandomForestClassifierclass Neura…

【RK3568 嵌入式linux QT開發筆記】 二維碼開源庫 libqrencode 交叉靜態編譯和使用

本文參考文章:https://blog.csdn.net/qq_41630102/article/details/108306720 參考文章有些地方描述的有疏漏,導致筆者學習過程中,編譯的.a文件無法在RK3568平臺運行,故寫本文做了修正,以下僅是自我學習的筆記&#xf…

git本地裸倉庫的“激活”:在同一臺 Linux 服務器上創建工作區

大家好!在之前的文章中,我們探討了 Git 裸倉庫(Bare Repository)的概念,它是沒有工作目錄,只包含 .git 目錄內容的特殊倉庫格式,非常適合作為中心化的代碼集散地或備份。我們也了解了 git clone…

如何排查在docker中運行軟件的故障:Docker故障排查可視化指南,三招鎖定問題根源

很多剛接觸Docker的朋友常覺得故障排查很神秘。其實只需關注CPU、內存、磁盤這三大資源指標!Linux終端雖強大但不夠直觀,下面教你用可視化工具輕松監控: 一、宿主機全局監控:FinalShell 掌控全局 連接宿主機 打開FinalShell&…

【論文筆記】【強化微調】T-GRPO:對視頻數據進行強化微調

tulerfeng/Video-R1: Video-R1: Reinforcing Video Reasoning in MLLMs [🔥the first paper to explore R1 for video] 1. 引述 在強化微調中,像 GRPO、DAPO 這樣的方法都是對文本或者圖片進行微調思考,所以這類微調方法不對時序信息做處理&…

【Unity】動畫系統

0 前言 早些時間學動畫系統時的筆記,實際還沒學完,后續計劃會慢慢補全吧。 1 動畫 通常來說動畫都是動畫師來做的,不過Unity也能實現簡單的動畫效果。PS:官方文檔中,將動畫稱之為動畫剪輯。 1.1 創建動畫 首先在Unit…

C++二級指針的用法指向指針的指針(多級間接尋址)

指向指針的指針是一種多級間接尋址的形式,或者說是一個指針鏈。 指針的指針就是將指針的地址存放在另一個指針里面。 通常,一個指針包含一個變量的地址。當我們定義一個指向指針的指針時,第一個指針包含了第二個指針的地址,第二個…

【格與代數系統】示例

【格與代數系統】格與代數系統匯總 例1 設是由誘導的代數系統,則其上的二元運算滿足(ABCD) A. B. C. D. 代數系統滿足交換律、冪等律、吸收律、結合律 例2 是(ABCD) A.有界格 有界格:有最大、最小元…

Stable Diffusion 項目實戰落地:手機壁紙制作-第一篇 從零基礎到生成藝術品的第一步!

大家好!歡迎來到《StableDiffusion實戰-手機壁紙制作》系列的第一篇! 在這一篇文章里,我們將一起探索如何用StableDiffusion(SD)這款強大的工具,快速制作出炫酷的手機壁紙。 如果你對生成藝術、AI繪圖感興趣,那你一定不能錯過! 你能做什么?你將做什么! 在之前的系…

WEB3開啟 Hardhat 自動驗證有什么意義

這是個非常好的問題,尤其是你在學習 Web3 后端開發時,理解為什么要啟用 Hardhat 自動驗證合約源碼,會讓你開發流程更完整、更專業。 ? 一句話總結: 開啟 Hardhat 自動驗證的意義是:讓你的合約在區塊鏈瀏覽器&#xff…

Qt窗?的學習(一)

Qt窗?是通過QMainWindow類來實現的。 QMainWindow是?個為??提供主窗?程序的類,繼承?QWidget類,并且提供了?個預定義的 布局。QMainWindow包含?個菜單欄(menubar)、多個?具欄(toolbars)、多個浮動窗?(鉚 接部…

C++ 面試題常用總結 詳解(滿足c++ 崗位必備,不定時更新)

📚 本文主要總結了一些常見的C面試題,主要涉及到語法基礎、STL標準庫、內存相關、類相關和其他輔助技能,掌握這些內容,基本上就滿足C的崗位技能(紅色標記為重點內容),歡迎大家前來學習指正&…

git提交的腳本無執行權限怎么辦

問題描述 自己寫的小項目,沒有在服務器安裝 Jenkins 進行項目部署,為了圖方便,在項目中編寫了一個 deploy.sh 腳本文件用來執行項目部署。但是在服務器上 pull 下來之后發現腳本文件沒有執行權限,通過 chmod 命令進行賦權&#x…