[关闭]
@yzzer 2020-05-04T21:00:26.000000Z 字数 2176 阅读 959

React Native 入门

React Native 是一个使用 JavaScriptReact来编写跨终端移动应用 AndroidiOS ) 的一种解决方案

这句话什么意思呢?

  1. 即使你不懂如何使用JavaKotlin 开发 Android ,或者不懂如何使用 SwiftObjective-C 来开发 iPad 或 iPhone 应用也不打紧,因为 React Native 几乎不需要和它们打交道。
  2. 这句话的另一个意思呢,就是,如果你想同时开发 Android 和 iOS 应用,但是你的学习能力是有限的,或者说你的时间精力不允许你同时进行两个平台的开发操作,不希望面对平台差异带来的头疼问题,只要你懂大致的前端开发,懂 JavaScript 和 React的基本概念 就够了,也能开发移动应用
  3. 当然了,这句话还意味着,只要你会 React 的前端,那么你就拥有 网页H5 页面移动 APP 的全栈开发能力。是不是很惊喜....

微软收购了NPM,Node和JavaScript的生态都会更上一层

React Native 简介

现在绝大多数 App 都采用混合模型开发,固定的,基础的组件使用 Java 或 Swift 等原生语言开发,而偏运营的组件和页面则采用 React Native 等 H5 形式开发。

这样做的好处就是原生开发者致力于创造基础组件,H5 致力于运营体验。

现在的 iOS 审核速度已经很快了,几乎一天就有结果,但是之前,可能要审核一周,半个月,甚至还会不通过,然后又要重新开始进入审核等待,这对于大部分需要频繁更新的 App 来说是不可接受的。

在这种情况下,React Native 出现了,它的首打功能就是 热更新技术

热更新 技术可以稍微的绕过应用商店的审核而直接更新。这样就可以达到快速上线功能的目的。

对于 React Native,官方的介绍可能更能体现出它的诞生前因后果。

  1. React Native 让我们可以只使用 JavaScript 语言就能构建出手机 APP。

  2. React Native 采用 React 作为底层框架,如果你会 React 那么就很容易上手 React Native。

  3. React Native 采用声明性组件中创建丰富的移动 UI。

    使用 React Native,你不是在构建移动 Web 应用程序,也不是在构建 HTML5 应用程序,更不是在构建混合应用程序。你是在构建了一个真正的移动应用程序,与使用 Objective-C 或 Java 构建的应用程序没啥区别的。

  4. React Native 使用与原生 iOS 和 Android 应用相同的基本 UI 构建块。如果你熟悉原生 iOS 或 Android 开发,那么只需要使用 JavaScript 和 React 将这些构建块放在一起。甚至你可以用原生语言开发出强大的让诸多开发者收益的RN第三方库(类似Navigation和element库)。

React Native 特性

我经常傻傻的分不清 featureadvantage 的区别。按照我们中文的意思来讲,特性 不就是 优点 么?

算了,不纠结了, React Native 有着以下的几个特性:

  1. React

    底层采用 Facebook 开发的 React 技术。

    React 是一个视觉框架,使用 JavaScript 来构建网页和移动网页。

  2. 原生

    React Native 内置了大量的原生组件,这比 Web APP 有着更强大的性能。这些原生组件,一般都会根据平台的特性,或写出单独的版本(TabBarIOS),或者同时兼容两个平台的版本(Picker)
    下面列出了两个平台特有的一些组件
    IOS
    IOS组件
    ANDROID
    YCqUhj.md.png

  3. 平台多样性

    React Native 开发的 App 可以运行在 iOS 平台和 Android 平台。

React Native 优点

现在市面上类 React Native 的框架很多,也有 H5,混合 APP 等等,还有那个淘宝开发的 Weex 好像。

即便如此,我们仍然选择 React Native,为什么?

  1. JavaScript

    完全采用 JavaScript 语言。而不是某些不伦不类的看似 JS 又不是 JS 的语言(称之为ES6和JSX)。

    如果大家以前有接触过网页开发,这意味着在语言层面根本不需要重新学习。
    Learn Once, Wirte anywhere

  2. 跨平台

    Write Once, Run anywhere 变得可能,尤其是 Android 和 iOS 两端。

  3. 社区给力

    国人的项目差距就在这里,国内的很多项目,尤其是阿里系的,看起来就是某个人的绩效。一段时间后连维护都不了。

    React Native 有着强大的社区,有着众多的开发者提供了各种类型的组件。npm的社区里有很多RN的第三方库,包括你现在在使用的这个APP,其中50%以上是用第三方组件实现的(本着不重复造轮子的精神)

React Native 的局限性

当然了,React Native 也不是万能的,它也有着自己的缺点和局限性。

React Native 的缺点有两个:

  1. 复杂的状态管理,页面切换。即使你会 React ,也会觉得它的生命周期或者导航很麻烦。虽然有了route和navigation这样的导航库(导航就是你平常用APP时,方便页面切换的一些逻辑按钮),但是情况还是没有改善,写这个APP的时候,我有3/4的时间都在头疼页面切换和页面之间的参数传递
  2. 创建新的原生组件复杂。如果你要创建一个之前从未出现过的原生组件,难度直线上升。你不仅需要懂得 Android 开发,还需要懂得 iOS 开发。当然,一般情况下,良好的社区弥补了这个补助。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注