01、RN 系列之--什么是 ReactNative

作者: TigerChain | 来源:发表于2017-08-11 18:03 被阅读230次

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    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 之旅吧。

    相关文章

      网友评论

        本文标题:01、RN 系列之--什么是 ReactNative

        本文链接:https://www.haomeiwen.com/subject/xnnlrxtx.html