为了减少与后台的交互带来的加载时间,
现在拟将从后台获取的对象暂存在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)
key是变量时完全可以的,问题出在storage(包括sessionStorage和localStorage)只能存储字符串的数据,无法直接存储js对象和数组。如果需要存储对象或者数组,可以用
JSON.stringify
先转化成字符串类型存储进去,读取之后再解析即可。例如: