关于React如何实现keepAlive的探索

本文探讨了在React项目中如何实现在列表页跳转到详情页后再返回列表页时保持原来位置。通常Vue有内置的keep-alive功能,但React并未提供。作者提出了两种方法:一是利用state或session存储列表页状态;二是使用umijs的keepAlive插件。社区方案中,umijs3.0的keepAlive特性提供了页面缓存功能,使得在列表和详情页之间切换时能保持状态。总结建议开发者在遇到问题时多参考社区资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

背景

探索

‘笨方法’

社区方案  

背景

      做了挺多中后台的项目,碰到过最多的是列表跳转详情,然后再从详情跳转到列表。这时候,就有个需求,从详情页跳转回列表需要显示原来的位置。

      通常情况下,如果不做任何操作,使用路由跳转回列表页,就会重新请求数据,显示的是第1页的数据,这中体验感是不好的。如果是使用Vue做项目的话,直接使用官方提供的keep-alive实现就行,非常方便。但react官方并没有提供这种功能。

     朴实的方法有没有呢,当然有,正所谓,只要思想不滑坡,办法总比困难多。

探索

‘笨方法’

       采用state存储当前列表页的分页对象以及搜索条件,跳转详情的时候一并传给详情页,然后跳转回详情再传回给列表页,也可以用session存储,不过你需要及时清理掉session,在你跳转到列表页以及详情页之外的页面时,是会比较麻烦,但是为了使软件体验感好,也是值得。

社区方案  

     使用umijs3.0提供的keepAlive试用版本,正好公司用的框架是umi,正好拿来用。使用方法很简单,只要route中配置属性keepAlive,就会被缓存。

 在不需要的时候,可以手动调用方法取消,下例的 /list 为上面设置了 keepAlive 的路由 path

总结,遇到解决不了的问题,不妨上社区看看,总能发现新大陆,加油!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值