wujie
wujie copied to clipboard
keep-alive和保活模式如何结合使用
大家好,请教下,
主应用有多标签的功能,并开启了keep-alive,但对子应用不生效,切换多标签时,子应该不加载会出现空白页面,如果通过事件通信让子应用重新加载路由,子应用页面可以渲染出来,但就失去了keep-alive的意义,之前页面的数据又重新加载了。
如果主应用开启了保活模式,有keep-alive的效果,但所有子应用的页面又都是一个页面了,并且不能清除掉,关了多标签再打开子应用也还是上次的数据。
想请问下大家,keep-alive和保活模式如何结合使用,能达到vue项目keep-alive缓存多个页面数据的效果,非常感谢。
。。。怎么跟我想问的问题一样。。。
我目前目前用vue2作为主应用实现了效果,主应用中给子应用设置为保活模式,然后通过window 通信方式将主应用所点击的路由path传给子应用去跳转就可以了,之所以没用事件通信是因为当打开一个标签页的时候,点击浏览器刷新会报一个eventBus 通信的异常问题。
谢谢,保活了就不好清除已经缓存的页面,需要手动删除。
在无界群里跟大家讨论一下这个问题,现在可能还没有完美的解决办法,目前我这边了解的大概有两种办法:
1 主应用开启保活,一个标签用一个实例,子应用的name唯一不重复,关闭标签时destroyApp销毁相应的实例。 这样缺点就是:如果打开的页面太多,实例会比较多,估计会有点性能问题
2 参考一下这位小伙伴提供的,通过缓存vue实例,可以实现keep-alive的效果:https://github.com/Tencent/wujie/issues/588
看看大家还有更好的方案共享一下。
我目前目前用vue2作为主应用实现了效果,主应用中给子应用设置为保活模式,然后通过window 通信方式将主应用所点击的路由path传给子应用去跳转就可以了,之所以没用事件通信是因为当打开一个标签页的时候,点击浏览器刷新会报一个eventBus 通信的异常问题。
能实现,但在无界没有解决内存泄露的问题之前,不要轻易尝试。 现在我满世界找能回收内存的方案
我是这么做的,仅供参考:
- 子系统开启保活,这样保活子系统与其它子系统之间就有累死keepalive 的效果(但保活后点击菜单子系统不会跳转了,所以要用事件通信处理)。
- 基座监听路由变化, 用
通信
方式 实现点击子系统路由菜单 完成子路由页面跳转操作,这样就可以走子系统内部路由的 keepalive。
@santeacher 交流群可以给个通道吗
我是这么做的,仅供参考:
- 子系统开启保活,这样保活子系统与其它子系统之间就有累死keepalive 的效果(但保活后点击菜单子系统不会跳转了,所以要用事件通信处理)。
- 基座监听路由变化, 用
通信
方式 实现点击子系统路由菜单 完成子路由页面跳转操作,这样就可以走子系统内部路由的 keepalive。
我也是这么做的,但是无法走子应用内部路由的keepalive。请问还有什么做的操作吗
能实现,但在无界没有解决内存泄露的问题之前,不要轻易尝试。 现在我满世界找能回收内存的方案
小哥,你是保活了多少个实例呐