如何在`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
库来发起请求。
评论