Vuex 的主要作用是用来 共享和管理数据,那为什么不直接使用浏览器缓存呢?Vuex和浏览器缓存策略的根本区别是什么?Vuex state 仓库中的数据流是单向同步的,那为什么可以在action 中进行异步操作? 比如在action 中发起请求,请求成功后再发起commit?请求各位大神解析啊!
2 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
首先,要区别 vuex
和 浏览器缓存 的区别。
vuex
的设计是将数据存在一个对象树
的变量中,我们的应用(vue应用)从这个变量中取数据,然后供应用使用,当将当前页面关闭,vuex
中的变量会随着消失,重新打开页面的时候,需要重新生成。
而,浏览器缓存(cookie,localstorage等)是将数据存到浏览器的某个地方,关闭页面,不会自动清空这些数据,当再次打开这个页面时,还是能取到之前存在浏览器上的数据(cookie,localstorage等)。
要使用vuex
还是使用浏览器缓存,要看具体的业务场景。比如:像用户校验的token
就可以存在cookie
中,因为用户再次登录的时候能用到。而像用户的权限数据
,这些是有一定安全性考虑,且不同用户的权限不同,放在vuex
中更合理,用户退出时,自动销毁。
其次,vuex
中的 state
是单向的,也可以异步操作,这两个没有冲突。
vuex
中的state
的设计思路是保证数据的一致性和连续性,而让state
中的值只能通过action
来发起commit
,进而改变state
中的值。
而,action
中是同步
还是异步
,都是单向
地改变state
中的值。
- 2 回答
- 0 关注
- 1480 浏览
添加回答
举报
0/150
提交
取消