sessionStorage中的key可以是变量值吗?

发布于 2022-09-07 11:59:30 字数 496 浏览 42 评论 0

为了减少与后台的交互带来的加载时间,
现在拟将从后台获取的对象暂存在sessionStorage中
之后需要的时候直接从sessionStorage中取
但是当前页面可能存在组件复用,
同一个组件中sessionStorage中key如果一样的话,
所有组件取到的value会都一样,导致显示与预期不符合。
现在想把组件的ID作为sessionStorage的key,
但是调试了几次获得的对象都是null
sessionStorage是不支持变量做key吗?
如果可以的话,我的方法哪里出问题了。
另外也想请教一下类似这种将后端信息缓存的手段,
除了sessionStorage外还有其他更优选择吗?

self.warningData = response.data.data;
var data = self.warningData;
var id = self.myInfoData.id;
sessionStorage.setItem(id,data)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

看海 2022-09-14 11:59:30

key是变量时完全可以的,问题出在storage(包括sessionStorage和localStorage)只能存储字符串的数据,无法直接存储js对象和数组。如果需要存储对象或者数组,可以用JSON.stringify先转化成字符串类型存储进去,读取之后再解析即可。例如:

var session = {
    'screens' : [],
    'state' : true
};
localStorage.setItem('session', JSON.stringify(session));
var restoredSession = JSON.parse(localStorage.getItem('session'));
console.log(restoredSession);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文