开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

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

  • 2015-02-02
  • 本文字数:1162 字

    阅读完需:约 4 分钟

近日,在 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 元素来渲染,比如使用取代
    ,使用替代等。在后台,React Native 运行在主线程之外,而在另一个专门的后台线程里运行 JavaScript 引擎,两个线程之间通过异步消息协议来通信(有个专门的插件)。
  3. 在 UI 方面,React Native 提供了一个跨平台、类似 Flexbox 的布局系统,并且还支持 CSS 子集。
  4. 可以用 JSX 、JavaScript、 CoffeeScript TypeScript 来开发。

React/React Native 团队成员 Jordan Hack 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-02 07:3019324
用户头像

发布了 46 篇内容, 共 53.0 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
发现更多内容

分库分表 vs NewSQL 数据库

xcbeyond

分库分表 6月日更

anyRTC Web SDK 实现音视频呼叫功能

anyRTC开发者

音视频 WebRTC RTC sdk

【LeetCode】连续数组Java题解

Albert

算法 LeetCode 6月日更

ETL工程师必看!超实用的任务优化与断点执行方案

敏捷调度TASKCTL

大数据 ETL算法 ETL ETL任务 ETL系统

亮相Google I/O,字节跳动是这样应用Flutter的

字节跳动技术团队

和12岁小同志搞创客开发:如何驱动各类型传感器?

不脱发的程序猿

DIY 传感器 如何驱动各类型传感器? 创客

踩准时钟节拍、玩转时间转换,鸿蒙轻内核时间管理有妙招

华为云开发者联盟

鸿蒙 时间管理 计数器 时间转换 计时

Overbit Flash|5 月加密货币市场风暴抹去了 90% 以上的 NFT 交易量

Overbit学院

比特币 加密货币 NFT Overbit 保证金交易

GitHub火到糊!这份阿里内部10W字Java面试总结,让你薪资翻倍

Java架构追梦

Java 架构 面试 跳槽

华云大咖说 | 安超OS全面升级 最新亮点解密

华云数据

6000年,看懂了「硬核山东」!

云计算

C 语言数据结构的封装方法

实力程序员

获5项大奖,发布《云计算开放应用架构标准》,阿里云持续领航云原生

阿里巴巴中间件

为鸿蒙OS说两句公道话(我对鸿蒙OS的一些看法)

Phoenix

【融云技术】超大规模并发下自定义属性的设置与分发

融云 RongCloud

什么是交叉编译

IT蜗壳-Tango

IT蜗壳教学 6月日更

🏆【声网Agora】「WebRTC-如何搭建语音认证服务」

洛神灬殇

WebRTC RTC征文大赛 Agora 6月日更

音视频学习--弱网对抗技术相关实践

Fenngton

音视频 网络 视频编解码 弱网下的极限实时视频通信 实时视频

前后端分离浅析以及分离教程

北游学Java

前后

难忘阿里,4面技术5面HR附加笔试面,走的真艰难真心酸

Java 编程 程序员 面试 架构师

Java日志的心路历程

程序猿阿星

Java log4j logback log4j2框架 Java日志

【Flutter 专题】113 图解自定义 ACEPieWidget 饼状图 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

☕【JVM技术之旅】全流程化分析Java对象的创建过程

洛神灬殇

JVM 6月日更 对象布局 内存结构

有点难的知识点:Webpack Chunk 分包规则详解

范文杰

webpack 6月日更

详解浏览器跨域访问的几种办法

华为云开发者联盟

安全 浏览器 跨域 WEB安全 跨域访问

裕民银行 x mPaaS | 移动应用“适老化”改造,可不止是字体变大

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS APP开发

新手小白必须知道的Linux基础:常用命令(1)

学神来啦

Linux linux命令 linux运维 linux 文件权限控制 Linux教程

从一面就被拒到收割字节offer,我花了一年时间,功夫不负有心人

Java架构师迁哥

C++多线程强制终止

华为云开发者联盟

c++ 安全 线程 多线程 可信

Qcon全球软件开发大会 融云分享SDK交付质量保障经验

融云 RongCloud

华为云IoT设备接入服务全体验

华为云开发者联盟

物联网 IoT 华为云 智能IoT边缘服务 华为云IoT云服务

React Native:Facebook出品,可用JavaScript开发移动原生应用_JavaScript_李小兵_InfoQ精选文章