跳到主要内容

问题

2024年08月02日
柏拉文
越努力,越幸运

一、通信问题


二、Model 挂载问题


问题描述: 如果基座应用向子应用传递事件回调, 子应用调用回调后, 基座应用打开弹窗。此时, Model 会挂载到子应用中。

解决方案:

  1. 通过消息通知, window.microApp.dispatch({type: '子应用发送给主应用的数据'})

  2. 解除元素绑定, removeDomScope(true), 通常用于受子应用元素绑定影响,导致主应用元素错误绑定到子应用的情况

三、多个子应用频繁切换, 隔离失效问题


多个子应用频繁切换, Window 代理出现混乱的情况, Window 为上一个子应用的 Window解决方案: 在 micro.start 注册函数中, 配置 plugins.global.scopeProperties。 配置如下:

start({
plugins: {
scopeProperties: ["webpackChunkumu_ems"], // 找出每个子应用主产物中的全局变量, 例如 Webpack 为 webpackChunkxxx, 这个全局变量记录了 SplitChunk 和 LazyImport 信息。所以, 需要将所有子应用主产物中的全局变量进行隔离。
}
});