-
Notifications
You must be signed in to change notification settings - Fork 606
Open
Description
问题描述
- 加载子应用时,如果某个
js
文件还未加载完成,该micro-app
就被卸载unmount
。 - 该
js
文件会继续加载,并执行该js
文件。
这时因为 with
沙箱已被停用了,所以对 window
的操作会逃逸到主应用
复现步骤
host
加载micro-app
micro-app
通过react lazy
动态加载其他组件LazyComp
host
通过fetch
配置,延迟LazyComp
的请求host
将该micro-app
卸载掉LazyComp
文件加载时,设置window.onclick = () => { conole.log('xxx') }
- 在窗口上随意点击,会触发上面的
console.log
上传截图
ae470c8c-4603-415c-a559-4948ef7d0179.mp4
复现仓库
https://github.com/chenhuang444/micro-app-example/tree/demo/unmount-escape-sandbox
branch: demo/unmount-escape-sandbox
在根目录:
pnpm install
pnpm dev
环境信息
- micro-app版本:1.0.0-rc.26
- 主应用前端框架&版本:[email protected]
- 子应用前端框架&版本:[email protected]
- 构建工具&版本:
- 主应用:[email protected]
- 子应用:[email protected]
子应用使用 rsbuild 是因为 vite 直接用了 esm import 加载,不太方便通过 fetch 拦截
Metadata
Metadata
Assignees
Labels
No labels