react-activation icon indicating copy to clipboard operation
react-activation copied to clipboard

qiankun使用 loadMicroApp 手动加载子应用,子应用缓存不生效

Open a717822 opened this issue 3 years ago • 10 comments

目前是把keepAlive是放在子应用中,主应用控制子应用路由的切换;查看开发工具,是含有keeper的,但是依然无法生效。

目前的疑问: keepAlive是否可以放在主应用中控制子应用缓存(试过,但是子应用缓存无效)?

a717822 avatar Sep 02 '22 10:09 a717822

可能是子应用自己的路由卸载了子应用的页面,如果是这样的话子应用可能也需要有自己的 keep alive

CJY0208 avatar Sep 02 '22 10:09 CJY0208

主应用使用的keepAlive,子应用也有keepAlive,还是无法缓存子应用功能

a717822 avatar Sep 05 '22 02:09 a717822

给个示例我看看

CJY0208 avatar Sep 05 '22 03:09 CJY0208

很抱歉无法提供完整相应的示例,我们的基座是自己搭建的,部分插件为我们自己开发的。大佬能不能远程协助下

a717822 avatar Sep 05 '22 07:09 a717822

远程不太方便...要不自己摸索一下?核心就是基座 keep 子应用的时候也需要触发子应用的 keep,可能也和 keep alive 标签的 cacheKey 有关,最好手动传递 cacheKey 并确保稳定性

CJY0208 avatar Sep 05 '22 07:09 CJY0208

目前在基座做了一层keepAlive,子应用也做了一层keepAlive。发现生成了两个keeper,一个keeper是基座产生了,一个keeper是子应用产生的,但是cachekey不同

目前的比较疑惑的是 1、基座的keepAlive 标签的cacheKey值,是否要与子应用的 cacheKey的值保持一致? 2、基座上加了一层AliveScope,子应用的也加了一层AliveScope。是否只需要在基座上做一层AliveScope?

a717822 avatar Sep 05 '22 08:09 a717822

先看是否有模块联邦之类的依赖共享机制,如果有

1、两个 cacheKey 不能相同 2、一层基座的 AliveScope 就够了

如果没有

1、两个 cacheKey 相不相同无所谓 2、父子应用都需要有自己的 AliveScope

CJY0208 avatar Sep 05 '22 08:09 CJY0208

好的,我先看看,这个issue,大佬先别关

a717822 avatar Sep 05 '22 08:09 a717822

目前是把keepAlive是放在子应用中,主应用控制子应用路由的切换;查看开发工具,是含有keeper的,但是依然无法生效。

目前的疑问: keepAlive是否可以放在主应用中控制子应用缓存(试过,但是子应用缓存无效)?

前段时间开发中也遇到类似问题,不过我这边可行呢。https://wuli-admin.gitee.io/react-mat-pro/

Aaron52077 avatar Nov 13 '22 03:11 Aaron52077

这个问题我在我的项目中集成keep遇到了,通过一些配置便实现了。 1.主应用使用keep-alive,对于同一微应用的页面在主应用要使用同一个cacheKey。 2.子应用正常实现keep-alive即可,不同页面不同的cacheKey。

Cool-Star avatar Jan 19 '23 05:01 Cool-Star