如何在`created`生命周期钩子中使用`sessionStorage`实现缓存
在 Vue.js 的 created 生命周期钩子中使用 sessionStorage 实现缓存,主要思路是在获取数据前先检查 sessionStorage 中是否已经存在所需数据,如果存在则直接使用缓存数据,若不存在则发起请求获取数据并将其存入 sessionStorage 中。以下是一个完整的示例,展示了如何在 created 钩子中实现这一功能:
代码解释
1.created 钩子部分:
首先从路由中获取查询参数,并将其存储到
initParams和queryParams中。生成一个基于
upCode的唯一缓存键cacheKey,用于在sessionStorage中存储和查找数据。尝试从
sessionStorage中获取该缓存键对应的数据。如果存在缓存数据,将其解析为 JavaScript 对象并赋值给
cachedList,表示使用缓存数据。如果不存在缓存数据,则调用
getList方法去获取新的数据。
2.getList 方法部分:
使用
setTimeout模拟一个异步请求,实际应用中可以替换为真实的 API 请求。模拟获取到数据后,将其赋值给
cachedList并显示在页面上。将获取到的数据转换为 JSON 字符串后存入
sessionStorage中,以便下次使用。
注意事项
sessionStorage存储的数据类型只能是字符串,因此在存储对象时需要使用JSON.stringify()进行转换,读取时使用JSON.parse()还原。sessionStorage中的数据在会话结束(关闭浏览器窗口)时会被清除。在实际项目中,你需要将
setTimeout替换为真实的 API 请求,例如使用axios库来发起请求。









评论