利用浏览器本地存储做跨页面传值(转)

转自:https://blog.csdn.net/taylorzun/article/details/81112392


 
 
  1. changeTheme () {
  2. dispatch({ type: 'app/switchTheme' })
  3. },
  4. changeOpenKeys (openKeys) {
  5. window.localStorage.setItem( `${prefix}navOpenKeys`, JSON.stringify(openKeys))
  6. dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } })
  7. },
  8. }

虽然字面上理解了window.localStorage.setItem的意思,但是对其用法不甚理解。所以找了一些文档,将自己的理解整理下来:

针对上面的这个部分,这段代码可以缓存当前页面的停留的子页面和展开的数据,当切换出去该页面再回来的时候,展示的仍然是离开时的页面和数据。

HTML5种的web storage包含两种存储方式:localStorage和sessionStorage,这两种方式存储的数据不会自动发给服务器,仅仅是本地保存,有大小限制。

localStorage是持久化的本地保存,只要你找不到其所在地没有主动删掉,就会一直存在。就像一些缓存,都把APP删了还有。

sessionStorage是会话级别的本地保存,比如一个页面关闭的时候该页面设置的sessionStorage数据会自动消失,在不同浏览器窗口不会共享的,即使是同一个浏览器的同一个页面。根Java里面的会话有点类似的。


 
 
  1. window.localStorage.setItem(key,value); //设置指定key的数据(JSON格式)
  2. window.localStorage.getItem(key); //获取指定key的数据
  3. window.localStorage.removeItem(key); //删除指定key的数据
  4. window.localStorage.clear(); //清空所有的存储数据
  5. window.sessionStorage.setItem(key,value);
  6. window.sessionStorage.getItem(key);
  7. window.sessionStorage.removeItem(key);
  8. window.sessionStorage.clear();

应该还有更深的理解。待续。

 

-----------------------------------------------------------continue--------------------------------------------------------------------------------

localStorage其他注意事项

一般我们会将JSON存入localStorage中,但是在localStorage会自动将localStorage转换成为字符串形式

这个时候我们可以使用JSON.stringify()这个方法,来将JSON转换成为JSON字符串

示例:


 
 
  1. if(! window.localStorage){
  2. alert( "浏览器支持localstorage");
  3. } else{
  4. var storage= window.localStorage;
  5. var data={
  6. name: 'taytay',
  7. sex: 'woman',
  8. hobby: 'program'
  9. };
  10. var d= JSON.stringify(data);
  11. storage.setItem( "data",d);
  12. console.log(storage.data);
  13. }

读取之后要将JSON字符串转换成为JSON对象,使用JSON.parse()方法


 
 
  1. var data={
  2. name: 'taytay',
  3. sex: 'woman',
  4. hobby: 'program'
  5. };
  6. var d= JSON.stringify(data);
  7. window.localStorage.setItem( "data",d);
  8. //将JSON字符串转换成为JSON对象输出
  9. var json=storage.getItem( "data");
  10. var jsonObj= JSON.parse(json);
  11. console.log( typeof jsonObj);

 
打印出来是Object对象

另外还有一点要注意的是,其他类型读取出来也要进行转换.......

参考链接: https://www.cnblogs.com/st-leslie/p/5617130.html 
https://www.cnblogs.com/wdlhao/p/4494624.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值