使用Storage解决网页数据持久化问题

因为react的state中存储的数据在页面刷新之后会清空(若设定了初始值则会重置为初始值),为了将state中的数据保留下来,我想到了HTML5中的localStorage,它的大小为5m,使用浏览器的本地存储来保存键值对格式的数据.

LocalStorage的方法只有5个,直观易用:

localStorage.key()
//该方法接受一个数值n作为参数,返回第n个键名
localStorage.setItem()
//该方法接受键名和键值两个参数,将其存储到localStorage中,若键名存在,则将其覆盖
localStorage.getItem()
//该方法接受键名作为参数,返回键值
localStorage.removeItem()
//该方法接受键名作为参数,并删除该键值对
localStorage.clear()
//该方法会清空存储
复制代码

我使用的方法是,将需要在刷新后保存的数据在赋值时使用localStorage.setItem()同步到localStorage中,然后在页面刷新之后(在react的生命周期方法中)使用localStorage.getItem()取回数据

(以Chrome为例)网页中的localStorage数据可以在开发者工具->Application->Storage中查看

注意事项: 1.localStorage的访问遵从同源策略,所以不同源的网页是无法共用localStorage的

2.localStorage不同于sessionStorage,它是没有过期时间的(sessionStorage的数据会在浏览器关闭时清空),但它会在执行清空浏览数据时被清空

3.存进localStorage的数据会被强制类型转换为string类型

浏览器支持情况:

sessionStorage与localStorage的方法完全相同,主要区别是存储时间的长短

转载于:https://juejin.im/post/5a310129518825585132b16e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值