window对象和vuex

发布时间 2023-10-17 10:06:52作者: seeBetter

保存在window对象中可以作为全局组件通信的媒介,不过这种方式不具备响应性能力,所以数据更时无法直接通知订阅数据的组件更新。

使用vuex .保存数据与window保存的原理一样,都是借助了全局对象进行数据互通, 不同的是vuex通过订阅发布机制可以将vue数据的更新通知到所有订阅状态的组件身上,实现数据变更时各个组件状态同步,不过前两者单独使用的时具备另一个相同的严重问题, 就是保存的数据再刷新网页后会直接消失,因为数据都是在运行内存中保存的。

localstorage是本地持久化缓存,好处就是可以解决前两个对象无法持久保存状态的问题, 缺点与window对象一致不具备响应性,在保存数据的体积上有5Mb左右的空间限制, 在保存的数据类型上建议对象数据转换成字符串保存。

localstorage通常配合vuex或pinia的plugin系统实现共享并持久化状态到本地;sessionstorage 对象是会话级缓存,随着窗口打开创建,在浏览器的窗口关闭时即销毁,窗口刷新时可以随时读取当前会话对象的内容,其他特性表现与localstorage大体一致,通常在会话级别数据缓存场景使用。

 

原文:https://zhuanlan.zhihu.com/p/555150523