react-router-cache-route icon indicating copy to clipboard operation
react-router-cache-route copied to clipboard

嵌套使用时无法缓存最后一个离开的路由

Open zcrun opened this issue 5 years ago • 11 comments

demo

有A和B两个路由缓存,在A内部又有A-1和A-2两个路由缓存,从A-1路由直接跳转B页面时,A-1没有缓存,仅仅缓存了A,使用删除缓存的方法也无法清除A-1

zcrun avatar Oct 10 '19 01:10 zcrun

你好,我查看了你的例子,似乎没有上述情况,A-1,也就是 list-1 在去往 detail 页的时候,list 和 list-1 都实现了缓存效果的,我 fork 了例子来做比较明显的展示

https://codesandbox.io/s/cacheroute-online-demo-b2whh

不过无法清除 A-1 缓存的问题确实存在,因为 A-1 的缓存域是 A,A-1 去往 B 时,其实是 A 进入了缓存状态而不是 A-1,未处于缓存状态的组件是不会被卸载掉的,所以这确实是个待修复的问题

CJY0208 avatar Oct 10 '19 13:10 CJY0208

非常感谢你的回复,确实如你回复的这样。

zcrun avatar Oct 10 '19 13:10 zcrun

我在另一个库 react-activation 中有做新的生命周期实践

react-activation 是纯粹的 <KeepAlive> 功能,没有上述无法清除缓存的问题,可以尝试一下

CJY0208 avatar Oct 10 '19 14:10 CJY0208

由于现在项目进入到了后期,如果替换成react-activation怕有不可预知的风险,不知是否可以修复这个问题呢

zcrun avatar Oct 11 '19 01:10 zcrun

可以修复,不过这个改动可能会大一些,耗时还不能确定

CJY0208 avatar Oct 11 '19 01:10 CJY0208

这个问题确实影响使用,是否可以告知计划什么时候准备修复呢?谢谢

zcrun avatar Oct 12 '19 06:10 zcrun

最近一直忙,近期将尝试修复

CJY0208 avatar Nov 06 '19 07:11 CJY0208

大佬,清除缓存这个问题,困扰好久了。尤其是嵌套这种情形

zoxiyo avatar Dec 26 '19 07:12 zoxiyo

我也发现 清除不了缓存 能不能支持下 dom卸载 就清除缓存 大佬

wzz5304 avatar Mar 23 '21 01:03 wzz5304

大佬 这都 2021年了 有计划修复吗

wzz5304 avatar Mar 23 '21 01:03 wzz5304

@wzz5304 cache-route 对平级路由的缓存功能支持较好,在复杂嵌套层级情况下支持较差,修复难度比较大,价值较小,所以我重做了一个库,目前这个问题优先级不高,还没有做修复计划

CJY0208 avatar Mar 25 '21 04:03 CJY0208