版权声明:本文为博主原创文章,未经博主允许不得转载。
PS:转载请注明出处
作者: TigerChain
地址: http://www.jianshu.com/p/717ccdd7c18c
本文出自 TigerChain 简书 ReactNative 系列
教程简介
- 1、阅读对象
本篇教程适合新手阅读,老手直接略过
-
2、教程难度
初级
一、手机 APP 分类
1、手机 APP 现状
从目前来说,手机 APP 分为三个大类:native,hybird,webapp
app.png
从以上三类来说,各有各个好处,简单说一下:
- native:性能高,开发效率慢,人员投入成本大
- webapp:性能低下,交互问题多
- hybrid:和原生交互方便,开发效率也高,性能比 webapp 好一些,比原生还是差距很大,但是腾讯、阿里有自己的技术栈「这块做的相对好一点」,大部分做的还是差强人意
综上,如果是对性能要求不是非常高的公司「我就遇到过,客户明确提出不能使用 H5 或 Hybrid 来开发」,那么 hybrid 是一个不错的选择。
2、为什么要有 ReactNative
既然有了 Hybrid 为什么还要搞个 RN 呢?我们知道 FaceBook 对世界上的 JS 类库都不鸟「觉得的使用不爽」,就自己造了一个 React ,FaceBook 就想 React 的一些思想和精髓能不能用到手机端开发「既有前端的开发效率,又有 native 的体验」,经历了若干磨难--最后 React Native 应运而生。
二、什么是 ReactNative
1、什么是 RN
用官方的话说,ReactNative「以下简称 RN」就是使用 JS 和 React 来构建原生 APP。
从以上解释我们可以知道,使用 RN 要掌握 JS 和 React,其实 JS 不是说要非常精通的掌握才可以学 RN。
PS:这说明一点 RN 不是 Hybrid ,它是通过 JS 来直接调用原生组件达到高性能
2、RN 的特点
优点:
- React 有的特点它都有即:即组件化、虚拟 DOM
- 开发效率高,性能无限接近原生 APP 「非Hybird 形式的」
- 热更新 HotFix
缺点:
- 三方 sdk 开放的 RN 的比较少,需要自己桥接
- RN 目前还没有开源 1.0 版本,有坑
- 如果想开发高性能的应用,必须得了解 native 开发,RN 不行 Native 补充。
3、RN 坑之说
目前来说 RN 在 IOS 上的坑较少, Android 来说较多「特别是国产机型乱七八糟的状况下,但是总归是有问题方法解决的」,但是这不是阻止我们去学习的借口,因为 RN 背后是强大的 FaceBook 在支撑着,而且有着活跃的社区。看看下面使用者,你就更有信心了。
三、RN 和 Native
RN 和 Native「原生」 相比
性能:
无限接近原生「目前来说肯是达不到原生体验的」,如果你觉得性能不好,完全可以使用原生代替,RN 调用即可
付出更少,得到更多
原本做一款 APP 至少要两名工程师「 Android 和 IOS」,并且开发效率不一致「一个字慢」,使用 RN 大量的代码可以得到利用,技术栈统一,效率明显提高,并且一个人就可以做出 IOS APP 和 Android APP
热加载
编写代码开户热加载,保存界面自动刷新,就有点像 Android 里面的 Instant Run 功能
代码共用「核心代码」
在 web android IOS 中 核心代码都是共用的,只需要做少许修改就可以使用 ,UI 代码库对于 Android 和 IOS 来说几乎是一样的。
建议:
- 学习 RN 的时候掌握一点 Native 知识「是 Native 转过来的就不说了」,组件不够用了「或部分功能不太好实现」,可以拿原生画 RN 调用即可
- 用真机测试,不要使用模拟器测试「不要尽可能相信模拟器」
四、谁在使用 RN
我们从官网载图一张图来看看
whousern.png我们可以看到 FaceBook 自家在使用,特斯拉也在使用,手Q 也在使用...
这里没有截完整,还有京东 APP, 天猫 APP ,手机百度等。具体也可以看官方具体内容:http://facebook.github.io/react-native/
国内技术看 BAT 目前 BAT 都在使用 RN,我们有什么理由不掌握 RN 呢,有 native 开发经验的人更占优势,没有 native 开发经验的人也没什么问题,人人都能学 RN 。让我们开启 RN 之旅吧。
网友评论