react与mobx搭配时如何缓存mobx的数据(刷新之后保存状态)

本文介绍了在使用React和MobX进行状态管理时,如何解决刷新页面导致状态丢失的问题。通过将状态缓存到session中,实现了页面刷新后状态的保留。具体做法包括在页面加载时检查session并恢复状态,以及在页面卸载时将状态存入session。通过在store文件中添加相应代码,并在App.js中配置,成功解决了状态丢失的问题。
摘要由CSDN通过智能技术生成

react与mobx搭配时如何缓存mobx的数据(刷新之后保存状态)

问题

近日在使用react的过程中,在状态管理方面,我使用了mobx,但是发现它与vuex有一个一样的问题,在强制刷新之后会使我保存的状态丢失,于是我打算仿照我处理vuex的方法,写一个类似的功能,话不多说,进入正题。

思路

我打算这样处理:把状态缓存在session里。
步骤一:在页面一进入的时候判断session内是否有我缓存的状态,有,那么就把缓存中的数据赋值给我的状态,没有,就不做任何操作
步骤二:在页面刷新或者退出的时候,把数据缓存到session内,beforeunload事件。
下面直接上代码

代码

    @action getDataFromSessionStorage = () => {
   
        sessionStorage.getItem
React中,可以使用一些技术来缓存之前页面的数据,以便在切换回该页面可以快速加载和显示数据。以下是一些常见的缓存数据的方法: 1. 状态管理库:使用状态管理库(如Redux、MobX)来管理应用的数据状态。通过将数据存储在全局状态中,可以在切换路由保留数据。当再次返回到之前的页面,可以直接从状态中获取数据进行显示。 2. 组件内部缓存:在组件内部使用state或者实例变量来缓存数据。当切换路由,组件被卸载,但是这些数据仍然存在于组件的状态或实例中。再次访问该页面,可以从组件的状态或实例中获取数据进行展示。 3. 浏览器缓存使用浏览器的缓存机制(如LocalStorage、SessionStorage、IndexedDB)将数据存储在本地。当切换路由,可以先从缓存中尝试获取数据,如果存在则使用缓存数据进行展示。注意,使用浏览器缓存需要考虑数据的有效期和清理策略。 4. 路由级别缓存:一些路由库(如react-router)提供了缓存路由组件的功能。当切换回之前的页面,路由库会自动从缓存中获取组件并显示。这样可以避免重新渲染和加载数据,提高页面的渲染性能。 需要根据具体的应用场景和需求选择合适的缓存方法。在实现缓存,还要考虑数据的更新和清理策略,以确保缓存数据与实际数据保持同步。同,也要注意缓存数据的大小和性能影响,避免过多的数据存储和加载导致性能问题。 希望对你有所帮助!如有任何疑问,请随提出。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值