vuex持久化儲存 和 直接存sessionstorage或者localStorage有什麼區別?

時間 2021-06-03 11:46:13

1樓:hbynlsl

vuex狀態資料,在不同元件之間是共享的,且是響應式更新的(即在A元件中更新狀態資料,在B元件中會自動響應式更新);但是在瀏覽器頁面重新整理後,vuex中的資料會丟失。

sessionStorage 或 localStorage資料,不會自動實現響應式更新;但是資料是持久化的,瀏覽器頁面重新整理後,資料仍然存在。

故一般應該把這兩者結合起來使用,比如 vuex-persistentdata 外掛程式(vuex外掛程式),把vuex中的資料儲存在 sessionStorage 或 localStorage中,頁面重新整理後,會自動載入資料到 vuex中,從而實現響應式更新資料。

2樓:冷聚變

如果把 vuex 進行「持久化儲存」處理,那和 sessionStorage 無區別。

很多持久化解決方案,本身就是轉儲到了 sessionStorage 裡。

至於為什麼要多此一舉,可以看看其他人回答的理由,其實說白了就是架構師喜好問題。

vuex 其實主要用於解決元件之間的通訊問題,vue 官方並沒有建議登入狀態一定要存在 vuex 裡。

3樓:丁丁

你vuex倉庫是響應式資料啊,直接存快取就是普通資料,持久化只是針對於vuex中的資料無法持久儲存,重新整理就沒有了,所以可以寫個持久化外掛程式用來儲存資料。重要的還是vuex store的狀態管理能力。

4樓:

區別就是sessionStorage或者localStorage不能響應式,vuex做持久化可以做到響應式。

如果用外掛程式的話可以免除自己手動序列化,反序列化等等轉換的麻煩事

5樓:NoBugs

vuex是在記憶體中,sessionStorage和localStorage是儲存在硬碟中的

sessionStorage和localStorage對於使用者是可見的,可以更改的

sessionStorage和localStorage變更之後無法做到更新檢視,除非手動繫結觸發更新,而vuex做為乙個全域性狀態庫,是可以驅動檢視更新的。

6樓:水華

vuex:vue全域性可引用相容vue的響應系統不做處理的話重新整理就沒

sessiinstorage:能存字串改了的話其他引用的地方不知道改了關閉瀏覽器就沒

localstorage:同上不過永久儲存所以基本都是vuex 然後vuex序列化之後往localstorage存乙份states vuex初始化的時候從localstorage裡取出來保證持久化和響應

7樓:劉鐵才

vuex不是用來存資料的,而是用來監視變化

主要是為了解決vue2 時多個元件間傳遞物件時,不會監控資料變化

vue3 用其他方式解決了這個問題

8樓:學致私教

sessionStorage僅在當前瀏覽器視窗關閉前有效,自然也就不可能持久保持localStorage

始終有效,視窗或瀏覽器關閉也一直儲存,因此用作持久資料

9樓:superYue

vuex 不是持久化,是狀態管理工具,它的資料是儲存在記憶體當中的。

就比如你把資料全都儲存在全域性變數裡,一重新整理肯定就沒了,但是儲存在全域性變數不容易管理,所以出現了vuex

java開發 使用了多個持久化引擎持久化資料(mysql redis es等)如何保證事務的原子性?

千鋒java學院 題主的這個問題是乙個分布式事務的問題,根據題主對問題的描述,應該是需要保證事務的最終一致性。目前保證事務最終一致性的實現方式很多,但是基本採用的是TCC方案。在聊TCC方案之前先需要弄清楚事務如何保證一致性的問題。傳統單體資料來源的事務一致性形象比如如下圖實現 如上圖所示,只有一條...

redis關於持久化的疑問?

劉學 因為redis自己也不知道距離上次持久化後,哪個key改過,哪個key沒改過,索性一股腦都搞了,順序寫盤也方便。redis受記憶體大小限制,不會搞出太大的檔案。然後就是資料版本的管理,乙個檔案對應乙個時間點的快照,這多清爽,搞成碎片化的,又複雜又沒什麼用。 已登出 儲存無數個細碎檔案顯然是不現...

java中的序列化和持久化之間的關係是什麼?

序列化是為了解決 資料傳輸的一致性 的問題。如 在機器A有乙個資料 假如是一串中文字串 如果要將這一串中文字串傳到機器B,那麼就涉及到傳輸的一致性問題,因為機器和機器之間的互動可以是二進位制格式,也可以是xml格式,也可以是JSON格式 以二進位制為例 所以就會經歷 資料在機器A轉成二進位制資料 機...