是否可以使用Facebook的React JavaScript框架为iOS和Android构建应用程序,提供与本机应用程序几乎相同的性能?
直到 2015 年 1 月,使用在 WebView 组件中运行 React JavaScript 部分的混合方法是唯一的选择,使用 Apache Cordova 等框架,这种方法具有典型的缺点。像 JavaScript 的垃圾回收这样的任务可能会减慢应用程序的本机部分,导致跳过帧,使应用程序感觉迟钝。
1月28日,Facebook在React.js Conf 2015上宣布了React Native项目。React Native 将是一个开源项目,它支持使用 React for iOS 和 Android 构建的 HTML5 应用程序的原生渲染。Facebook 内部使用 React Native 来构建 Facebook Groups 应用程序等 iOS 应用程序。
从技术上讲,React Native 在后台线程中运行 React 应用程序的 JavaScript 代码。收集对虚拟 dom 的更新,并将所有更改通过 API 发送到应用程序的本机部分。通过这样做,React Native 避免了通过让应用程序等待未完成的 JavaScript 操作来减慢应用程序的 FPS 速率。
Facebook宣布,React Native的源代码将在React.js Conf 2015之后不久在Github上提供。会议参与者将在 2015 年 1 月 29 日访问 Github 存储库。
更新:包含一些技术细节的第二个演示视频 React.js Conf 2015 主题演讲 2 - 深入了解 React Native 现已在 Youtube 上发布。在演示期间,Facebook宣布iOS和Android的布局和框模型引擎渲染的源代码可在Github上的以下存储库中找到:github.com/facebook/css-layout
用于 React Native 的动画库的 iOS 版本托管在 https://github.com/facebook/pop
更新 2:源代码现已在 Github 上提供React Native 源代码现已 https://github.com/facebook/react-native 可用。
更新 3:React 团队在 2015 年 9 月发布了 Android 支持https://code.facebook.com/posts/1189117404435352/react-native-for-android-how-we-built-the-first-cross-platform-react-native-app/
开始使用React Native Android 开发的说明可以在这里找到:https://facebook.github.io/react-native/docs/android-setup.html
如上所述,您只能将 React Native 用于 iOS。
如果你想在两个平台上都使用 React:
- 查看 Reapp (http://reapp.io/)。它是一个 React + Javascript 框架,用于构建具有很酷功能的 iOS 和 Android 应用程序。
- 也许试一试试金石(http://touchstonejs.io/)。基本上:React + Cordova + HTML5/CSS3 UI。文档也即将推出。