react +mobx刷新页面数据恢复默认值问题

2 篇文章 0 订阅

说实话之前我去百度一堆,就只看到一种方式,实在不好用,并且可用的博文又少,都是粘贴复制的文章,我都懒得看了,我就自己写了一套方案出来,觉得还不错在这里分享一下
首先主要是者两个文件
在这里插入图片描述
home.js是我们要用的store,
server.js是附加的保存数据的关键文件
home.js

import { observable,action} from "mobx"
import { getVal,setVal} from "./server"//新增的配置
class HomeStore { 
   @observable homeNum = getVal("homeNum", 11); //定义state赋予初值
   @observable navACtive = getVal("navACtive", 0);//定义state赋予初值
   @action clickNav(val) { 
          setVal("navACtive", val)    //更新state时修改
          this.navACtive = val;   
   }   
   @action addNum() { 
          this.homeNum += 1;      
          setVal("homeNum", this.homeNum)  
    }   
   @action lessNum() {    
          this.homeNum -= 1;   
          setVal("homeNum", this.homeNum)  
   }
}
export default HomeStore

server.js

// getVal是获取主要是给state定义初始值
// name:传入字符串是存于session的名称一般与state取名一致
// val:设置state初始值时赋予的值,可不传,默认为空
export const getVal = function (name,val="") {
  try {
	if(sessionStorage.getItem(name)!=undefined && sessionStorage.getItem(name)!=''){
      return JSON.parse(sessionStorage.getItem(name));
    }else{
      return val
    }	
  } catch (error) {
		return ""	
  }
 
}
// setVal是获取主要是给state更新值
// name:传入字符串是存于session的名称一般与state取名一致
// obj:更新的值
export const setVal = function (name,obj) {
  let ret=JSON.stringify(obj) 
    sessionStorage.setItem(name, ret);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值