硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

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:3019646
用户头像

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

关注

评论

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

智慧公安重点人员管控系统搭建,实现重点人员动态管控

13828808769

智慧公安

超详细 PowerDesigner 入门教学(项目数据库设计标准)

若尘

数据库 数据库设计

GaussDB(for openGauss)让数据“存得下、算得快、算得准”

华为云开发者联盟

GaussDB(for openGauss) 华为云数据库 数据分布方式 计算下推 数据强一致

Windows 下 搭建 Flutter 环境

U2647

flutter 4月日更

算法思考:红包金额生成

程序员架构进阶

Java 28天写作 算法解析 4月日更 微信红包

中寰卫星导航卜钢采访:IT年轻人怎么工作、学习和生活(采访提纲)

老猿Python

学习 采访 IT年轻人

被应用商店下架的应用,该如何下载?

彭宏豪95

效率 App 苹果 4月日更

算法突击营毕业总结

韩儿

他人方寸间,山海几千重

清秋

随笔 4月日更 1 周年盛典 我和写作平台的故事

第一个 Go 程序

escray

学习 极客时间 Go 语言 4月日更 Go100

Python OpenCV 图像处理之直方图的应用,取经之旅第 26 天

梦想橡皮擦

Python OpenCV 4月日更

openLooKeng V1.2.0 发布

LooK

大数据 数据 Bigdata

C++系列:Visual Studio(VS)2019登录不上?

Bob

c++ 踩坑经历 编程经验 4月日更

数据库存取策略对比

小舰

4月日更

区块链特色农产品溯源平台解决方案

13828808769

溯源 #区块链#

修电脑、脱发、格子衫?程序员拒绝标签化,这才是真正的他们

华为云开发者联盟

程序员 女朋友 标签 格子衫 单身狗

直播 | 如何使用Ranger增强权限管理?

LooK

大数据 数据分析 数据 Bigdata

Github Star 11.5K项目再发版:AAAI 2021 顶会论文开源,80+多语言模型全新升级

百度大脑

飞桨

ES9的新特性:异步遍历Async iteration

程序那些事

JavaScript ecmascript 程序那些事 es9

Spring Boot 启动时,让方法自动执行的 4 种方法!

Java小咖秀

springboot 启动方式

喜欢回忆过去的人,没有未来

小天同学

成长 自我思考 个人感悟 突破瓶颈 4月日更

Zabbix Linux 下源码安装

耳东@Erdong

zabbix 4月日更

一直做着行业最“新”的尝试:NA(Nirvana)Chain受邀出席共为·创新大会并办展

区块链第一资讯

VueRouter源码解读:三大核心模块构成

梁龙先森

源码分析 大前端 vue-router

Linux pwd 命令

一个大红包

Linux linux命令 4月日更

面试官:Java中线程是按什么顺序执行的?

华为云开发者联盟

Java 线程 执行顺序 多线程并发

python 实现类属性的懒加载装饰器

一代咩神

Python 懒加载 类属性 描述器

初识GaussDB(for Cassandra)

华为云开发者联盟

数据安全 GaussDB 华为云数据库 GaussDB(for Cassandra) 分布式云数据库

一加9pro联名哈苏了!这可能是你能买的平替哈苏

Geek_4a453c

【LeetCode】打家劫舍 II Java题解

Albert

算法 LeetCode 4月日更

聪明人的训练(十五)

Changing Lin

4月日更

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