几个小时前,React.js Conf 2015 会议上,Facebook 发布了 React Native,可以基于目前大热的开源 JavaScript 库 React.js 来开发 iOS 和 Android 原生 App。而且 React Native 已经用于生产环境——Facebook Groups iOS 应用就是基于它开发的。Facebook 也已确认,这个项目很快将会开源。
根据 ProgVille 的文章,React Native 的原理是,在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染,比如以<View>取代<div>,以<Image>替代<img>等。
在幕后,React Native 在主线程之外,在另一个背景线程里运行 JavaScript 引擎,两个线程之间通过一批量化的 async 消息协议来通信(有一个专门的 React 插件)。
UI 方面 React Native 提供跨平台的类似 Flexbox 的布局系统,还支持 CSS 子集。可以用 JSX 或者普通 JavaScript 语言,还有 CoffeeScript 和 TypeScript 来开发。有评论说,React 的 UI 层模型要比 UIKit 好很多。
更好的是,由于基于 Web 技术,开发起来可以像在浏览器里那样随时在仿真程序中查看应用运行情况,刷新一下就行,无需编译,爽吧。
只是不知道这种架构下 App 的性能、流畅度如何。
更多详情可以参考会议视频:https://www.youtube.com/watch?v=KVZ-P-ZI6W4