是时候了解React Native了
随着科技的发展,手机开发也在向好的方向不停的转变。IOS和Android两大手机操作横空出世,称霸江湖。我们每开发一个手机软件最少都需要开发这两个终端。 两大操作系统都在不断的提升完善,能力越来越强大,这对于我们开发者是好事,因为用智能手机的用户越来越多。
话天下大事,分久必合,合久必分。这句话对于移动开发也是一样的。
这几年来,移动应用开发者做梦都希望有一个能跨平台的开发工具,让他们不要把同一个移动应用使用不同的开发语言写两遍。但跨平台开发工具的实现很难,直到Facebook开源了React Native.
###React,React.js, React Native 要想学习React Native首先了解上面三个概念和之间的联系。
- React 是基础框架,提供了一套基础设计实现理念,并不能直接用来开发,就好比马克思主义对于我党的作用一样。
- React.js 是在React理念的指导下产生的专门用来开发网页的框架.与React同时出现和发展,React的相关概念都在React.js文档中。
- React Native 是用来开发移动应用。需要用到React概念,但是不需要React.js的东西。
预备知识
- 学习React Native开发需要了解基础的JavaScript编程知识。如果有编程经验的可以通过 慕课网提供的学习页面http://www.imooc.com/learn/36 或者直接阅读ECMAScript 6入门电子版
- 最好简单了解一下Android或者IOS其中一门开发,因为React Native开发的功能偶尔还需要借助原生代码实现,大家可以看一下我写的爱上Android这本书了解下Android开发
#React Native的特点 使用React Native开发,既拥有Native的良好人机交互体验,又保留了React框架的开发效率。 ###一次学习,随处编写 一份代码同时支持IOS和Android两个平台在历史上证明是非常困难的,所以React Native小组并没有狂妄的喊出"Write once,run anywhere",而是提出了**“Learn once,write anywhere”。**使用RN可以为两个操作系统开发应用程序,但不同的平台上的代码根据平台会有一些微小的区别,但开发思路是相同的。在UI开发上,RN差不多做到了"Write once,run anywhere"。
混合开发
React Native支持混合开发,大致分为三种情况。
- UI界面由React Native开发, 但UI事件处理由原生代码执行
- 将原来使用的原生代码实现的UI小部件包装成React Native的自定义控件
- 应用界面在React Native开发的界面与原生代码开发的界面间进行切换,React Native的强项就是UI开发,在混合开发中,能用React Native开发的界面,优先用React Native开发.
优缺点
RN优点很明显,
- 可以大大节省开发成本,百分之90多界面可以通过RN开发,一份代码可以适配Android和IOS.
- RN有独特的UI实现框架,借助组件化开发是团队规模更容易进行调整,可以快速迭代项目.
- RN可以通过一些手段自动匹配不同屏幕大小的手机,再也不需要自己去计算视图的大小和位置.
- RN具备高效的UI调试.
RN也有一些缺点,不过相对于优点基本上可以忽略
- RN开发的程序内存消耗略大, 开发模式下开销大几十兆,发布后差异不大, 目前手机基本上都有2G以上的内存, 几十兆可以忽略不计了。
- 运行速度略慢, 不可否认,原生代码比RN运行速度略快, 显示一个界面多一两毫秒吧,正常的人根本感觉不到,如果你用不经过优化的原生代码反而不如RN.
- 安装包比原生代码安装包大,这点更可以忽略了, 现在手机什么都缺就不缺空间.
React Native开发环境搭建
React Native可以在Mac,Linux,Windows上搭建, 其中如果开发IOS,必须在Mac上搭建。具体如何搭建可以参考React Native环境搭建
学习资料
React Native 官方文档中文版 React Native中文网 ECMAScript 6入门
更多精彩请关注微信公众账号likeDev
是时候了解React Native了相关推荐
- fragment中文网_更新 · React Native 中文网
时刻将 React Native 更新到最新的版本,可以获得更多 API.视图.开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼 ...
- React Native —— App
使用 React Native 作为 app 框架,Redux 作为数据层,因此我们需要选用一些支持性的技术和工具: 开源的 Parse Server 做数据存储 - 运行在 Node.js 上. F ...
- 【React Native】iOS原生导航跳转RN页面
上一篇介绍了React Native使用react-navigation进行导航跳转页面,现在我们介绍下原生iOS中怎么导航进一个新的React Native页面. 一.原生跳转React Nativ ...
- 【React Native】react-navigation导航使用方法
目录 集成react-navigation 使用react-navigation 上一篇介绍了如何在已有iOS项目中集成React Native.这一篇我们把上一篇的demo做下拓展,添加点击电影跳转 ...
- 给iOS开发者的React Native入门使用教程
目录 一. 原生iOS项目集成React Native 二. 原生跳转RN页面 三. 显示豆瓣热门电影列表 四. 改为导航 五.完整源代码 一. 原生iOS项目集成React Native 创建一个新 ...
- 对比React Native、dcloud、LuaView三个框架技术(内部)
转载自:http://www.jianshu.com/p/ee1cdb33db8d 主要对比React Native和5+SDK(就是dcloud的SDK)两个: 开发语言:三个都是用其他语言来统一开 ...
- 初步了解React Native的新组件库firstBorn
first-born is a React Native UI Component Framework, which follows the design methodology Atomic Des ...
- 我在React Native中构建时获得的经验教训
by Amanda Bullington 通过阿曼达·布林顿(Amanda Bullington) 我在React Native中构建时获得的经验教训 (Lessons I learned while ...
- React Native开源项目如何运行(附一波开源项目)
学习任何技术,最快捷的方法就是学习完基础语法,然后模仿开源项目进行学习,React Native也不例外.React Native推出了1年多了, 开源项目太多了,我们以其中一个举例子.给大家演示下如 ...
- React Native常用组件之ListView
1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...
最新文章
- numpy.loadtxt画功率谱图
- java常见不可变类_Java语言不可变类的诀窍
- linux module原理,NodeJS的模块原理
- android webview控件的缩放问题 隐藏缩放控件
- lua 区间比较_TI-Lua 系列教程2.4.1: 条件分支
- 如何正确 Get 分库分表?
- 【Transfer Learning】泛化到未知域:域泛化 (Domain Generalization) 综述论文
- 用engineercms建立项目管理平台
- JAVA学习心得——DBUtil工具类
- 如何用u盘给惠普服务器安装系统,如何用u盘装惠普系统教程
- u3d occlusion 遮挡剔除
- 如何提升原创文章排名与百度冰桶算法
- scylla_Scylla评论:Apache Cassandra增压
- 流程审批类系统数据库结构怎么定义
- 精通CSS.DIV网页样式与布局(四) ——页面背景
- 原生js省市区三级联动
- 文本文件的加密与解密
- BLDC 120度方波控制方案 调制方式包含单极性和双极性,反电动势过零点AD采样
- excel连续格式刷_使用格式刷复制Excel格式的简便方法
- notepad++ 配置自己的notepad++的界面风格