irychen / keepalive-for-react

React KeepAlive is a component that can cache the state of the component and reuse it when needed.
MIT License
189 stars 34 forks source link

从2.0.18升级到3.0.1,切换路由时内存会飙升 #31

Closed jinxiangqiang closed 1 week ago

jinxiangqiang commented 2 weeks ago

相比2的版本性能好像不是很好,也许是我升级的某些API没对上,建议出个升级教程

irychen commented 2 weeks ago

有问题复现代码吗?基本变化不大,hooks参数位置变动,加入了transition props也就是异步渲染和动画过渡

jinxiangqiang commented 2 weeks ago

layouts.zip 这是2.0.18版本我参考super-admin写的,3.0的写法我回退了,只是修改了部分API为新的写法

irychen commented 2 weeks ago

https://github.com/irychen/super-admin/commit/35fdab5b6567f1740cc2e73cac539ffda3807e4c 这个是Super admin 升级改动 不需要过渡动画可以去掉transition,对了可以注意一下是不是useLayoutEffectOnActiveuseEffectOnActive没有释放资源,super-admin在路由切换的时候没什么问题,内存也正常。

useLayoutEffectOnActive(
    () => {
        console.log("active");

       return ()=>{
             // 释放资源
       }
    },
    [],
    false,
);