跳到主要内容

Garfish.getGlobalObject

用于子应用获取真实 window 的值。

在微前端应用下,子应用将默认开启沙箱模式。在沙箱模式下,子应用中全局变量为被 proxy 的 'fakeWindow',而全局变量(真实 window)默认会被隔离。若子应用需求获取真实 window 的值,可以通过此方法获取。

提示
  1. 一般情况下我们不建议直接通过此 API 获取真实 window,这样建议的原因是:

    • 使用此 API 后子应用产生了一个无法独立运行的逻辑,导致子应用失去独立运行的能力;
    • 由于环境变量的修改并不是单向数据流,造成主应用无法感知哪些子应用会去修改 window 上的哪些变量,可能造成数据管理的混乱;
  2. 若需要获取真实 window 上的环境变量,可通过 protectVariable 属性,将需要共享的属性放入列表中即可通过子应用的全局变量获取,这样主应用能感知到哪些值是会被修改的,哪些值是不会被修改的,能在一定程度上控制 window 变量的修改;

Type

getGlobalObject: () => Window & typeof globalThis;

示例

import Garfish from 'garfish';

const nativeWindow = Garfish.getGlobalObject();