electron 多窗口 vuex/pinia 數據狀態同步簡易方案(利用 LocalStorage)

全局 stroe 添加 mutations 狀態同步方法

  // 用于其他窗口同步 vuex 中的 DeviceTcpDataasyncDeviceTcpData(state: StateType, data: any) {state.deviceTcpData = data},

App.vue 里

onMounted(() => {console.log("App mounted");/*** vuex 多窗口 store 同步*/// 1. 初始賦值// 從 localStorage 同步 tcp 上報的數據到 vuexconst deviceTcpData = localStorage.getItem("deviceTcpData");if (deviceTcpData) {store.commit("asyncDeviceTcpData", JSON.parse(deviceTcpData));}// 2. 監聽 storage 事件 同步 全局 state// 其他渲染進程,當設置進程進行修改storage的時候,其他進程可以根據storage變化來更改自己的storewindow.addEventListener("storage", () => {const deviceTcpData = localStorage.getItem("deviceTcpData");deviceTcpData &&store.commit("asyncDeviceTcpData", JSON.parse(deviceTcpData));});// 從主界面關閉時,清空本地存儲的數據 (清除 localstorage 的時機)window.addEventListener("beforeunload", (e: any) => {if (route.name === "search") {localStorage.removeItem("deviceTcpData");}});
});

關鍵: 利用 watch 監聽全局 state 的變動,每次變動,進行 localStorage 同步

// 監聽 全局 store 的變動
watch(() => store.state.deviceTcpData,(val) => {console.log("watch 觸發");console.log(val);localStorage.setItem("deviceTcpData", JSON.stringify(val));},{deep: true,}
);

缺點: 數據量大時,消耗性能較高。可用作少量數據的同步方案;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11618.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11618.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11618.shtml

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

相關文章

springboot306基于Java的民宿管理系統(源碼+包運行+配套LW+技術指導)

項目描述 臨近學期結束,開始畢業設計制作,你還在做java程序網絡編程,期末作業,老師的作業要求覺的困難嗎?不知道畢業設計該怎么辦?網頁功能的數量是否太多?沒有合適的類型或系統?等等。今天給大家介紹一篇基于Java的民宿管理…

python篇-cmd 執行pip命令失敗,但執行pyhon命令正常

當你在CMD中可以正常執行python命令,但執行pip命令失敗時,這通常意味著pip沒有被正確地添加到系統的環境變量中。這里有一些步驟來解決這個問題: 檢查環境變量: 打開系統的環境變量設置(右擊“此電腦”>“屬性”>…

CoSeg: Cognitively Inspired Unsupervised Generic Event Segmentation

名詞解釋 1.特征重建 特征重建是一種機器學習中常用的技術,通常用于自監督學習或無監督學習任務。在特征重建中,模型被要求將輸入數據經過編碼器(encoder)轉換成某種表示,然后再經過解碼器(decoder&#x…

c/c++對于char*的理解(聯合string容器)

在C和C中,char*是一個指向字符(char)的指針。它經常被用來處理C風格的字符串,這種字符串是以空字符(\0)結尾的字符數組。以下是關于char*的一些關鍵點: C風格的字符串: C風格的字符…

升級Microsoft 365后,SAP GUI中無法打開Excel的解決方案

最近,我們遇到了一個棘手的問題,一位客戶在升級到Microsoft 365后,無法在SAP GUI中打開Excel。這個問題不僅影響了工作效率,也給用戶的日常操作帶來了不便。在本文中,我們將探討問題的成因,并提供一種解決方…

泛微E9開發 添加多個多選框,實現單選框的效果

利用多個多選框實現單選框的效果 1、功能背景2、展示效果3、實現效果 1、功能背景 如下圖所示,在表單中新增四個“選擇框-復選框”類型的字段,并且設置其中的選項,每個多選框都只有一個選項,通過代碼塊實現單選框的效果 1.顯示模…

鄧閑小——生存、生活、生命|真北寫作

人生有三個層次∶生存、生活、生命。 生存就是做必須做的事。生存的模式是鄧,是交易,是買賣。別人需要的東西,你生產出來,賣給他。哪怕這個東西沒啥用,也可以賣,情緒也可以賣。你需要的東西,你花…

分布式與一致性協議之POW算法

POW算法 概述 談起比特幣,你應該并不陌生。比特幣是基于區塊鏈實現的,而區塊鏈運行在因特網上,這就存在有人試圖作惡的情況。有些讀者可能已經發現了,口信消息型拜占庭問題之解、PBFT算法雖然能防止壞人作惡,但只能防…

代碼隨想錄算法訓練營第二十三天 | 530.二叉搜索樹的最小絕對差、501.二叉搜索樹中的眾數、236. 二叉樹的最近公共祖先

目錄 530.二叉搜索樹的最小絕對差 思路 代碼 501.二叉搜索樹中的眾數 思路 代碼 236. 二叉樹的最近公共祖先 思路 代碼 530.二叉搜索樹的最小絕對差 需要領悟一下二叉樹遍歷上雙指針操作,優先掌握遞歸 題目鏈接/文章講解:代碼隨想錄 視頻講解…

Java Spring的定時任務的配置和使用

在Spring框架中,配置和使用定時任務主要涉及Scheduled注解以及Spring的異步任務執行能力。以下是詳細步驟: 1. 引入依賴 對于Spring Boot項目,通常已經包含了Spring框架,因此不需要額外添加定時任務的依賴。如果使用的是Spring框…

AI大模型測評系統opencompass源碼解析

1 注冊器(Registry) 為了管理功能相似的模塊,MMEngine實現了注冊器。注冊器可以被視作這些類或函數的抽象。例如注冊器 MODELS 可以被視作所有模型的抽象。 1.1 什么是注冊器 MMEngine 實現的注冊器可以看作一個映射表和模塊構建方法(build function)的組合。 映射表:…

八、e2studio VS STM32CubeIDE之內存使用情況窗口

目錄 一、概述/目的 二、STM32CubeIDE Build Analyzer 三、e2studio Memory Usage 八、e2studio VS STM32CubeIDE之內存使用情況窗口 一、概述/目的 1、嵌入開發最大特點之一就是資源受限,關注芯片資源使用詳情是優秀工程師的技能之一 2、Keil和IAR都不支持內存…

CTFshow 信息搜集

第一題1 進入靶場 直接看源碼發現flag 第二題 1 按右鍵沒辦法看源碼 按ctrlu可以查看源碼 第三題 0 查看源碼 發現還是什么都沒有 用bp抓包發現flag 第四題1 直接進robots.txt 訪問flagishere.txt獲得flag 第五題 0 提示了phps源碼泄露 用目錄掃描工具沒掃出來 看wp 發現有…

網絡編程套接字詳解

目錄 1. 預備介紹 2.網絡字節序 3.udp網絡程序 4.地址轉換函數 5.udp網絡編程 1.預備介紹 1.1源IP地址和目標IP地址 舉個例子: 從北京出發到上海旅游, 那么源IP地址就是北京, 目標IP地址就是上海. 1.2 端口號 作用: 標識一個進程, 告訴OS這個數據交給那個進程來處理; (1)…

Oracle: 一個用戶多個表空間處理

1.場景描述 今天工作中,同事說建了一個用戶,往里面導入數據時提示表空間不存在,建了表空間后,部分仍然導不進去。期望幫忙創建表空間,并指定默認表空間,成功將數據導入。 (1)創建好的…

K8s:二進制安裝k8s(單臺master)

目錄 一、安裝k8s 1、拓撲圖 2、系統初始化配置 2.1關閉防火墻selinx以及swap 2.2設置主機名 2.3在每臺主機中添加hosts,做映射 2.4調整內核參數,將橋接的ipv4流量傳遞到iptables,關閉ipv6 2.4時間同步 3、部署docker引擎&#xff0…

使用LangChain和Neo4j快速創建RAG應用

大家好,Neo4j 通過集成原生的向量搜索功能,增強了其對檢索增強生成(RAG)應用的支持,這標志著一個重要的里程碑。這項新功能通過向量索引搜索處理非結構化文本,增強了 Neo4j 在存儲和分析結構化數據方面的現…

go語言map底層及擴容機制原理詳解(上)

底層數據結構-哈希表 go語言map的底層數據結構是哈希表:通過哈希表來存儲鍵值對,通過hash函數把鍵值對散列到一個個桶(bucket)中。 什么是哈希表? 在順序結構以及平衡樹中,元素與其的存儲位置之間沒有對應關系,因此…

SwiftUI中的@StateObject和@ObservedObject的區別

SwiftUI中的StateObject和ObservedObject屬性包裝器指示視圖更新以響應被觀察對象的變化。雖然這兩個屬性包裝器看起來很相似,但在使用SwiftUI構建應用程序時,有一個關鍵的區別需要理解。 兩個屬性包裝器都要求對象符合ObservableObject協議。這個協議表…

表征和基于結構的蛋白質工程:黃芪特異性皂苷乙酰轉移酶-文獻精讀14

Characterization and structure-based protein engineering of a regiospecific saponin acetyltransferase from Astragalus membranaceus 表征和基于結構的蛋白質工程:黃芪特異性皂苷乙酰轉移酶,一篇乙酰基轉移酶文章精讀分享~ 摘要 乙酰化有助于許…