Vuex 的主要作用是用來 共享和管理數(shù)據(jù),那為什么不直接使用瀏覽器緩存呢?Vuex和瀏覽器緩存策略的根本區(qū)別是什么?Vuex state 倉庫中的數(shù)據(jù)流是單向同步的,那為什么可以在action 中進行異步操作? 比如在action 中發(fā)起請求,請求成功后再發(fā)起commit?請求各位大神解析啊!
2 回答

拉莫斯之舞
TA貢獻1820條經(jīng)驗 獲得超10個贊
首先,要區(qū)別 vuex
和 瀏覽器緩存 的區(qū)別。
vuex
的設計是將數(shù)據(jù)存在一個對象樹
的變量中,我們的應用(vue應用)從這個變量中取數(shù)據(jù),然后供應用使用,當將當前頁面關閉,vuex
中的變量會隨著消失,重新打開頁面的時候,需要重新生成。
而,瀏覽器緩存(cookie,localstorage等)是將數(shù)據(jù)存到瀏覽器的某個地方,關閉頁面,不會自動清空這些數(shù)據(jù),當再次打開這個頁面時,還是能取到之前存在瀏覽器上的數(shù)據(jù)(cookie,localstorage等)。
要使用vuex
還是使用瀏覽器緩存,要看具體的業(yè)務場景。比如:像用戶校驗的token
就可以存在cookie
中,因為用戶再次登錄的時候能用到。而像用戶的權(quán)限數(shù)據(jù)
,這些是有一定安全性考慮,且不同用戶的權(quán)限不同,放在vuex
中更合理,用戶退出時,自動銷毀。
其次,vuex
中的 state
是單向的,也可以異步操作,這兩個沒有沖突。
vuex
中的state
的設計思路是保證數(shù)據(jù)的一致性和連續(xù)性,而讓state
中的值只能通過action
來發(fā)起commit
,進而改變state
中的值。
而,action
中是同步
還是異步
,都是單向
地改變state
中的值。
- 2 回答
- 0 關注
- 1553 瀏覽
添加回答
舉報
0/150
提交
取消