Pinia持久化插件sessionStorage存储不生效问题

293 阅读1分钟

1.问题场景

在使用持久化插件放在sessionStorage中存储,当在一个页面点击详情进行新开标签页面跳转,新跳转的页面存储的数据没有更新。

2.原因分析

如果数据存在sessionStorage中,那么在同一个浏览器窗口或选项卡中打开的标签页之间会共享sessionStorage的内容。但是,新的浏览器窗口或选项卡中打开了页面,那么sessionStorage不会被共享,导致看到旧的缓存数据。

2.1 原页面更新的id

存储:

image.png

image.png

image.png

2.2 另开标签页id未更新

image.png

image.png

3. 解决办法

只要不新开标签页,可以使用sessionStorage. 新开标签页之间共享缓存数据,考虑使用localStorage。本地存储是在所有选项卡和浏览器窗口之间共享的,并且保持持久性。与sessionStorage不同,即使浏览器关闭,本地存储中的数据仍然会保留。