React Native:Facebook 出品,可用 JavaScript 开发移动原生应用

  • 李小兵

2015 年 2 月 2 日

话题:JavaScript移动Facebook语言 & 开发架构

近日,在React.js 2015 大会上,Facebook 公布了即将开源的 React Native,它基于开源框架React.js,并可用来开发 iOS 和 Android 原生应用。目前,Facebook 已经将 React Native 投入到了实际生产环境中,并开发出了基于 iOS 平台的聊天工具 Groups。

从 ProgVille 发布的一篇题为《React Native—使用 React.js 开发原生应用》的文章中得知以下 React Native 的相关信息:

  1. React Native 已实现了对 iOS 和 Android 两大平台的支持。
  2. 使用 React Native 开发原生应用的原理是:在 JavaScript 中用 React.js 抽象操作系统的原生 UI 组件,继而代替 DOM 元素来渲染,比如使用 <View> 取代 <div>,使用 <Image> 替代 <img> 等。在后台,React Native 运行在主线程之外,而在另一个专门的后台线程里运行 JavaScript 引擎,两个线程之间通过异步消息协议来通信(有个专门的插件)。
  3. 在 UI 方面,React Native 提供了一个跨平台、类似Flexbox的布局系统,并且还支持 CSS 子集。
  4. 可以用JSX、JavaScript、CoffeeScriptTypeScript来开发。

React/React Native 团队成员JordanHack News上分享了 React Native 的一些基于个人观点的信息,他说到 React Native 为提高开发效率提供了大量的益处,但是在性能方面,React Native 还存在一些问题。同时还指出 React Native 同其他原生开发应用方式的不同之处,如 React Native 完全不用 DOM、React Native 既保证对应用程序性能的要求,同时兼顾 Web 开发优点;能够使用 JavaScript 来写高质量的应用等。

Reddit上也有了相关评论信息用户 lunchmeat317认为学习 React.js 的时机到了。用户 BishopAndWarlord表示对 React Native 很好奇并期待获得更多相关信息。

用户jrm2k6评论到:

自己已了解和喜欢他们的理念:一次学习,即可以做自己想着的任何事情。但是现在需要展示一些代码实例了,也许这是一个愚蠢的问题,但是它和Ionic有什么不同,同使用 AngularJS 开发 iOS/Android 应用有什么不同?

用户arx707接着回答到:

React Native使用 React.js 作为原生组件的抽象层,而AngularJS和 Ionic 使用 WebViews 模拟本地组件,React Native 的性能应该和Appcelerator跨平台工具Titanium一样。

React Native 基于 React.js 实现,而 React.js 是 Facebook 推出并开源的一个用来构建用户界面的 JavaScript 库,其已经应用于构建 Instagram 网站及 Facebook 部分网站。React.js 同 AngularJS、MeteorJS 和 Polymer 类似,它们都属于 Model-Driven Views 结构的框架,但是 React.js 又与他们有不同之处,即 React.js 使用 JavaScript 而非 HTML 来构建用户界面。更多关于 React.js 和 React Native 的详


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

JavaScript移动Facebook语言 & 开发架构