常见问题

ReactXP 支持哪些平台?

ReactXP 目前支持以下平台:

  • iOS (React Native)
  • Android (React Native)
  • Web (React)
  • Windows 10 – UWP (React Native) - 正在开发中

其他平台,如 Windows 7 & 8、MacOS 和 Linux,可以使用像 Electron 这样的 Web 封装解决方案来支持。

ReactXP 支持哪些浏览器?

我们已经用以下最新版本的浏览器测试了 ReactXP:

  • Chrome (Windows 和 Mac)
  • Internet Explorer (9 及更高版本)
  • Edge
  • Firefox

理论上,其他 HTML5 浏览器也应该可以正常工作。

我可以在没有 TypeScript 的情况下使用 ReactXP 吗?

是的,您可以用 JavaScript 或任何编译成 JavaScript 的语言(TypeScript、Flow 等)编写应用程序代码。ReactXP 是用 TypeScript 实现的,发行版中包含 ReactXP 接口的 TypeScript 类型定义。

ReactXP 与 React Native 有何关系?

ReactXP 基于 React Native 构建。ReactXP 的组件和 API 受 React Native 启发——在大多数情况下与 React Native 相同。ReactXP 通常公开在 iOS 和 Android 上的 React Native 实现(以及 Windows 上 nascent 实现)中通用的 API、prop、样式属性和动画接口。它还在 Web 上实现了这些相同的 API、prop、样式属性和动画接口。

ReactXP 既不是 React Native 的真子集,也不是真超集。它没有公开 React Native 提供的所有组件。特别是,它不公开任何平台特定的组件(例如 PickerIOS 或 MapView)。它还公开了一些在 React Native 中未实现的组件和 API,例如 GestureViewUserPresence

使用 ReactXP 的应用程序可以直接访问 React Native 组件和 API。它们还可以在 Web 上直接访问 React DOM 元素。但是,此类代码需要包含构建时或运行时条件,以避免在不适用的平台上使用这些组件或 API。

通过 ReactXP 公开的所有组件和 API 都已在所有受支持的平台上实现。在某些情况下,API 调用是空操作,但它们保证已实现。例如,Input.backButtonEvent 在 iOS 和 Web 上是空操作,StatusBar API 在 Web 上是空操作。仅使用 ReactXP 抽象的应用程序通常可以避免每个平台的条件检查。

ReactXP 与 React Native for Web 有何不同?

React Native for Web 是由 Twitter 工程师开发的开源库。我们在 React Native for Web 可用之前就开始实现 ReactXP。

这两个工作的目标相似,但方法不同。ReactXP 是一个位于 React Native 和 React 之上的层,而 React Native for Web 是 React Native 的并行实现——是 React Native for iOS 和 Android 的兄弟。

ReactXP 通常只公开那些在所有平台上都可用的 prop、样式属性和 API。如果您使用 ReactXP 的抽象编写代码,您可以高度自信地认为它将在所有受支持的平台上以相同的方式运行。使用 React Native for Web/iOS/Android 也可以实现同样的效果,但您需要更仔细地选择使用的组件、prop 和 API。

我们编写 ReactXP 的目标之一是让开发人员可以在他们感觉最舒适的任何平台环境中编写和调试代码,同时确信生成代码将在其他平台上以相同的方式运行。

ReactXP 与 Xamarin 有何不同?

Xamarin 是一个跨平台解决方案,允许开发人员使用单一代码库在 iOS、Android 和 Windows Phone 上创建应用程序。Xamarin 应用程序用 C# 和 XAML 编写,允许 .NET 开发人员利用他们的技能和经验。Xamarin 应用程序可能比 React Native 应用程序更高效,后者受 JavaScript 性能和 React Native 桥接开销的限制。Xamarin 于 2016 年初被微软收购,并由一支专门的工程师团队提供支持。它提供了一个全面的开发解决方案,包括编码、调试、性能分析、构建、自动化测试和分发工具。

与 Xamarin 不同,ReactXP 提供了一种使用相同的源代码创建移动应用程序和 Web 应用程序的方法。ReactXP(如 React 和 React Native)允许经验丰富的 Web 开发人员利用他们现有的技能和知识。ReactXP 由微软的 Skype 团队开发,以支持他们的开发需求。ReactXP 基于 Facebook 和更广泛的 React 开源社区的工作。

Xamarin 和 ReactXP 都是出色的解决方案,但它们解决的问题略有不同。