阅读 330

01、RN 系列之 什么是 ReactNative

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

PS:转载请注明出处 作者: TigerChain 地址: www.jianshu.com/p/717ccdd7c… 本文出自 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 ,手机百度等。具体也可以看官方具体内容:facebook.github.io/react-nativ…

国内技术看 BAT 目前 BAT 都在使用 RN,我们有什么理由不掌握 RN 呢,有 native 开发经验的人更占优势,没有 native 开发经验的人也没什么问题,人人都能学 RN 。让我们开启 RN 之旅吧。

关注下面的标签,发现更多相似文章
评论