Garfish.getGlobalObject
用于子应用获取真实 window 的值。
在微前端应用下,子应用将默认开启沙箱模式。在沙箱模式下,子应用中全局变量为被 proxy 的 'fakeWindow',而全局变量(真实 window)默认会被隔离。若子应用需求获取真实 window 的值,可以通过此方法获取。
提示
一般情况下我们不建议直接通过此 API 获取真实 window,这样建议的原因是:
- 使用此 API 后子应用产生了一个无法独立运行的逻辑,导致子应用失去独立运行的能力;
- 由于环境变量的修改并不是单向数据流,造成主应用无法感知哪些子应用会去修改 window 上的哪些变量,可能造成数据管理的混乱;
若需要获取真实 window 上的环境变量,可通过
protectVariable
属性,将需要共享的属性放入列表中即可通过子应用的全局变量获取,这样主应用能感知到哪些值是会被修改的,哪些值是不会被修改的,能在一定程度上控制window
变量的修改;
Type
getGlobalObject: () => Window & typeof globalThis;
示例
import Garfish from 'garfish';
const nativeWindow = Garfish.getGlobalObject();