随着科技的发展,手机开发也在向好的方向不停的转变。IOS和Android两大手机操作横空出世,称霸江湖。我们每开发一个手机软件最少都需要开发这两个终端。
两大操作系统都在不断的提升完善,能力越来越强大,这对于我们开发者是好事,因为用智能手机的用户越来越多。
话天下大事,分久必合,合久必分。这句话对于移动开发也是一样的。
这几年来,移动应用开发者做梦都希望有一个能跨平台的开发工具,让他们不要把同一个移动应用使用不同的开发语言写两遍。但跨平台开发工具的实现很难,直到Facebook开源了React Native.
React,React.js,React Native
要想学习React Native首先了解上面三个概念和之间的联系。
1. React 是基础框架,提供了一套基础设计实现理念,并不能直接用来开发,就好比马克思主义对于我党的作用一样。
2. React.js 是在React理念的指导下产生的专门用来开发网页的框架.与React同时出现和发展,React的相关概念都在React.js文档中。
3. 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支持混合开发,大致分为三种情况。
1. UI界面由React Native开发,但UI事件处理由原生代码执行
2. 将原来使用的原生代码实现的UI小部件包装成React Native的自定义控件
3. 应用界面在React Native开发的界面与原生代码开发的界面间进行切换,React Native的强项就是UI开发,在混合开发中,能用React Native开发的界面,优先用React Native开发.
优缺点
RN优点很明显,
1. 可以大大节省开发成本,百分之90多界面可以通过RN开发,一份代码可以适配Android和IOS.
2. RN有独特的UI实现框架,借助组件化开发是团队规模更容易进行调整,可以快速迭代项目.
3. RN可以通过一些手段自动匹配不同屏幕大小的手机,再也不需要自己去计算视图的大小和位置.
4. RN具备高效的UI调试.
RN也有一些缺点,不过相对于优点基本上可以忽略
1. RN开发的程序内存消耗略大,开发模式下开销大几十兆,发布后差异不大,目前手机基本上都有2G以上的内存,几十兆可以忽略不计了。
2. 运行速度略慢, 不可否认,原生代码比RN运行速度略快,显示一个界面多一两毫秒吧,正常的人根本感觉不到,如果你用不经过优化的原生代码反而不如RN.
3. 安装包比原生代码安装包大,这点更可以忽略了,现在手机什么都缺就不缺空间.
React Native开发环境搭建
React Native可以在Mac,Linux,Windows上搭建,其中如果开发IOS,必须在Mac上搭建。具体如何搭建可以参考React Native环境搭建
学习资料
React Native 官方文档中文版
React Native中文网
ECMAScript 6入门
更多精彩请关注微信公众账号likeDev,公众账号名称:爱上Android。