最小通用 Web 平台 API
标准化的 Web 平台 API 的子集,可以选择使用 Turbo Modules 添加其他 API。
概述
最小通用 Web 平台 API 是标准化的 Web 平台 API 的精选子集,旨在定义浏览器和非浏览器基于 JavaScript 的运行时环境共有的最小功能集。 目标是在 React Native 和 Hermes 中支持这些 API。
globalThis API 被认为是独立于用户界面的多窗口问题的。 有关更多信息,请参见window。
使用 Turbo Modules 添加 API
Web API 也可以通过 Turbo Modules 在原生平台上实现,而无需与 React Strict DOM 进行专门集成。 例如,请参见此localStorage 实现。
兼容性
| Web API | Android | iOS | 问题 # |
|---|---|---|---|
| AbortController | ❌ | ❌ | |
| AbortSignal | ❌ | ❌ | |
| Blob | ✅ | ✅ | |
| Crypto | ❌ | ❌ | |
| CustomEvent() 构造函数 | ❌ | ❌ | |
| Event() 构造函数 | ❌ | ❌ | |
| EventTarget.addEventListener() | ❌ | ❌ | #37 |
| EventTarget.dispatchEvent() | ❌ | ❌ | #37 |
| EventTarget.removeEventListener() | ❌ | ❌ | #37 |
| fetch | ✅ 部分 | ✅ 部分 | |
| FileReader | ✅ | ✅ | |
| URL | ❌ | ❌ |
| globalThis | Android | iOS | 问题 # |
|---|---|---|---|
| globalThis.atob() | ✅ | ✅ | |
| globalThis.btoa() | ✅ | ✅ | |
| globalThis.clearInterval() | ✅ | ✅ | |
| globalThis.clearTimeout() | ✅ | ✅ | |
| globalThis.console | ✅ | ✅ | |
| globalThis.crypto | ❌ | ❌ | |
| globalThis.fetch() | ✅ | ✅ | |
| globalThis.performance.clearMarks() | ✅ | ✅ | |
| globalThis.performance.clearMeasures() | ✅ | ✅ | |
| globalThis.performance.getEntries() | ✅ | ✅ | |
| globalThis.performance.getEntriesByName() | ✅ | ✅ | |
| globalThis.performance.getEntriesByType() | ✅ | ✅ | |
| globalThis.performance.mark | ✅ | ✅ | |
| globalThis.performance.measure() | ✅ | ✅ | |
| globalThis.performance.now() | ✅ | ✅ | |
| globalThis.performance.timeOrigin | ❌ | ❌ | |
| globalThis.queueMicrotask() | ✅ | ✅ | |
| globalThis.setInterval() | ✅ | ✅ | |
| globalThis.setTimeout() | ✅ | ✅ |