gpt4 book ai didi

react-native - 变量 "window"在 React Native 中代表什么?

转载 作者:行者123 更新时间:2023-12-03 14:10:01 27 4
gpt4 key购买 nike

我正在查看一些用于 react native fetch blob https://github.com/joltup/react-native-fetch-blob 的代码,我在他们的示例中看到调用 window.Blob 等。

Window 是否是一个全局变量,就像您在浏览器 Web 环境中看到的那样?或者它是否以某种方式代表当前的可视屏幕?下面的代码示例只是替换/覆盖全局对象吗?

const Blob = RNFetchBlob.polyfill.Blob;
const fs = RNFetchBlob.fs;
window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest;
window.Blob = Blob;

最佳答案

React Native 定义了一些全局变量(都在 global 下),它们是 polyfill 的,因此可以使用最初为浏览器开发的某些库而不会失败。大多数熟悉的浏览器 API 的 polyfill 都是空的。您可以在 InitializeCore.js 中看到它们。
window 虽然不是空的。它设置为 global :

if (global.window === undefined) {
global.window = global;
}

那么下一个问题是, Blob 中的 global 是什么?
Blob 是使用 global 函数的属性 added to polyfillGlobal 。如果您对它的工作原理感到好奇,可以查看 PolyfillFunctions.js 文件。 Blob 本身在 Blob.js 中定义。
polyfillGlobal('Blob', () => require('Blob'));

所以现在我们看到了 React Native 正在做什么,我们可以回到你的问题:
  • Window 是否是一个全局变量,就像您在浏览器 Web 环境中看到的那样?
  • 是的,它是一个全局变量,它是 global 的属性,设置为等于 global
  • 还是以某种方式代表当前的可视屏幕?
  • 不。它代表 React Native 想要它代表的任何东西。
  • 下面的代码示例是否只是替换/覆盖全局对象?
  • 是的。它正在用 react-native-fetch-blob 自己的实现替换 window.XMLHttpRequestwindow.Blob
  • 关于react-native - 变量 "window"在 React Native 中代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49911424/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com