支持过期时间的localStorage React Hook

这篇博客介绍了作者如何创建一个支持过期时间的React Hook,利用localStorage进行数据存储。通过tsdx构建项目,作者封装了一个功能,使得localStorage能够处理过期时间。实现思路包括将值与过期时间一同存储,比较过期时间与当前时间,过期则删除,否则返回值。该Hook已发布到npm,并提供了age参数用于设置过期时间,还具备防止缓存覆盖的前缀功能。
摘要由CSDN通过智能技术生成

最近自己造了一个轮子,支持过期时间的localStorage React Hook。

这次使用「tsdx」构建项目,tsdx是一个用于ts开发的零配置命令行工具,构建时自动添加打包工具、测试、storybook、Example等,节省了很多安装包的命令。

localStorage只有getItem, setItem, removeItem(), clear()4个API,本身并不支持过期时间,但我们可以添加这个功能并封装成React Hook函数。

实现思路如下:

  • 将Item的值和过期时间作为一个对象,使用JSON.stringify()处理

  • 调用setItem(),将值和过期时间一起存入

  • 调用getItem(),用JSON.parse()处理取出过期时间,与当前时间判断

  • 如果过期调用removeItem()删除缓存,如果没过期就获取Item的值

最后打包发布到npm。

使用

const [item, setItem] = useLocalStorage(key, { initialValue, prefix, age });

age就是设置的过期时间,使用ms库处理后存入到localStorage,每次访问该缓存时都会判断是否过期。age可以取这些值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值