使用本地性能构建iOS和Android的混合React应用程序

24

使用Facebook的React JavaScript框架,是否可以构建适用于iOS和Android的应用程序,并提供几乎与原生应用相同的性能?

2个回答

45

直到2015年1月,使用混合方法在WebView组件内运行React JavaScript部分将是唯一的选择,使用像Apache Cordova这样的框架,带有典型缺点。像JavaScript垃圾收集之类的任务可能会减慢应用程序的本地部分,导致跳帧,使应用程序感觉迟缓。

在2015年1月28日Facebook宣布了React Native项目,该项目在React.js Conf 2015上发布。React Native将是一个开源项目,可实现使用React构建的HTML5应用程序在iOS和Android上进行本地渲染。 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 Keynote 2 - A Deep Dive into React Native现已在Youtube上发布。在演示中,Facebook宣布了iOS和Android的布局和盒模型引擎渲染的源代码,可在以下存储库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


2
目前只有Youtube视频可用,一旦源代码可用,将添加源代码和文档的链接。 - raju-bitter
1
我看过视频,其中也提到了Android,但从未真正提及时间表(或者至少关于当前进展的情况)。是否有更多的信息可供参考? - Nils Ziehn
在Github上的css-layout模块中已经有一些Android支持的源代码可供使用。我还没有听说过React Native带有Android支持的Alpha版本发布时间表。 - raju-bitter
太糟糕了。多平台的方法真的让我感到很有兴趣 :/ - Nils Ziehn
源代码现已可用,随时可以使用。https://github.com/facebook/react-native - raju-bitter
对,他们仍在开发Android版本。在3月30日,React Native团队表示React Native Android什么时候发布?给我们6个月的时间。在Facebook,我们努力只开源我们正在生产中使用的项目。虽然React Native的Android后端已经开始工作(请参见下面37分钟的视频),但尚未向任何用户发布。 - raju-bitter

0

如上所述,您只能在iOS上使用React Native。

如果您想要在两个平台上使用React:

  • 可以尝试Reapp(http://reapp.io/)。它是一个React + Javascript框架,具有很酷的功能,可用于构建iOS和Android应用程序。
  • 也可以尝试Touchstone(http://touchstonejs.io/)。基本上是:React + Cordova + HTML5/CSS3 UI。文档即将推出。

自2015年9月起,Android已得到支持。 - raju-bitter

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接