React数据回显

javascript 复制代码
 export function getSession(key) {  
  return sessionStorage.getItem(key)  
}  

export function setSession(key, value) {  
  sessionStorage.setItem(key, value)  
}  
  
export function clearSession(key) {  
  sessionStorage.removeItem(key)  
}  
  
export function getRouteParamSession(key) {  
  const data = JSON.parse(sessionStorage.getItem('ROUTE-PARAMS') || '{}')  
  return data[key]  
}  
   
export function setRouteParamSession(key, value) {  
  const data = JSON.parse(sessionStorage.getItem('ROUTE-PARAMS') || '{}')  
  data[key] = value  
  sessionStorage.setItem('ROUTE-PARAMS', JSON.stringify(data))  
}  
    
export function clearRouteParamSession(key) {  
  if (key === 'all') {  
    sessionStorage.removeItem('ROUTE-PARAMS')  
  } else if (key) {    // 如果 key 不是 'all',只删除一个属性而不是整个对象  
    const data = JSON.parse(sessionStorage.getItem('ROUTE-PARAMS') || '{}')  
    if (data[key]) {  
      delete data[key]  
      sessionStorage.setItem('ROUTE-PARAMS', JSON.stringify(data))  
    }  
  }    
}
javascript 复制代码
// 暂存当前页面的请求参数,达到在返回页面保持状态
const saveParams = (params)=>{
  setRouteParamSession('data1', params)
}
const getParams = ()=>{
  return getRouteParamSession('data1')
}

刷新页面清空数据

javascript 复制代码
   // 页面刷新(hooks)
  useEffect(()=>{
    const handleBeforeUnload = () => {
      clearRouteParamSession('data1')
    }
    window.addEventListener('beforeunload', handleBeforeUnload)
    return () => {
      window.removeEventListener('beforeunload', handleBeforeUnload)
      if (React.$share) {
        React.$share.destroy()
      }
    }
  },[])
javascript 复制代码
//(类组件,生命周期)
  handleBeforeUnload = () =>{
    clearRouteParamSession('data1')
  }

  componentDidMount() {
    window.addEventListener('beforeunload', this.handleBeforeUnload)
  }

  componentWillUnmount(){
    window.removeEventListener('beforeunload', this.handleBeforeUnload)
  }
相关推荐
光影少年5 小时前
angular生态及学习路线
前端·学习·angular.js
无尽夏_7 小时前
HTML5(前端基础)
前端·html·html5
Jagger_7 小时前
敏捷开发流程-精简版
前端·后端
FIN66688 小时前
昂瑞微冲刺科创板:创新驱动,引领射频芯片国产化新征程
前端·安全·前端框架·信息与通信·芯片
GISer_Jing8 小时前
ByteDance——jy真题
前端·javascript·面试
睡美人的小仙女1278 小时前
浏览器为何屏蔽本地文件路径?
前端
真的想不出名儿8 小时前
Vue 中 props 传递数据的坑
前端·javascript·vue.js
FIN66688 小时前
昂瑞微:深耕射频“芯”赛道以硬核实力冲刺科创板大门
前端·人工智能·科技·前端框架·信息与通信·智能
阳光阴郁大boy8 小时前
星座运势网站技术解析:从零打造现代化Web应用
前端·javascript
烛阴8 小时前
武装你的Python“工具箱”:盘点10个你必须熟练掌握的核心方法
前端·python