ice-lab / icestark

:tiger: Micro Frontends solution for large application(面向大型应用的微前端解决方案),站点国内镜像:https://icestark.gitee.io
https://micro-frontends.ice.work
MIT License
2.04k stars 173 forks source link

样式丢失 #755

Open UtherPim opened 1 month ago

UtherPim commented 1 month ago

bug

复现过程

  1. 主应用使用vue3 + antd构建;
  2. 子应用使用react18 + antd5 + other(内部基于antd4封装的组件库);
  3. 子应用覆写unmount函数,特意不执行root.unmount()卸载子应用(发现这样可以缓存react子应用页面状态) export function unmount() {console.log('unmount ')}
  4. 从子应用A切换到别的子应用B再切回该子应用A离开时的路由,出现样式丢失,自己写的module.css样式和antd5(用了prefixCls)框架的样式,都丢了

期望

  1. 切换子应用后样式不丢,正常展示。
  2. 或者是否有缓存子应用所有状态的方案?
  3. 或者能说明一下子应用切换时做了啥事情吗?
ClarkXia commented 1 month ago

如果样式是异步加载进来的,框架无法识别该样式在应用切换的时候是否移除,可以通过额外的 API 进行标记 shouldAssetsRemove

UtherPim commented 1 month ago

@ClarkXia

如果样式是异步加载进来的,框架无法识别该样式在应用切换的时候是否移除,可以通过额外的 API 进行标记 shouldAssetsRemove

这个需要在主应用中配置,因为跨部门合作问题,我们无法修改主应用代码,有什么别的方法吗