React NativeReact Nativereact-native开发

React Native跨平台移动应用开发框架介绍

2017-03-11  本文已影响539人  Rocdo

好久没有来更新博客了,给大家说声抱歉,人一旦懒惰起来连自己都害怕。可能是因为一个人生活,少了很多动力吧。这都是在给自己找理由。我在不偷懒了。
最近我要入坑了,公司安排我要开始搞React Native了,之前也给大家分享过一篇RN的搭建框架,那时候只是对RN感兴趣想有时间学学,但是现在要投入更多的时间。

这周领导让我给搭建分享下RN跨平台开发技术,简单的介绍一下,可是网上关于RN的技术博客很多,语言描述性的缺很少,让初学者没有一个很好的概念去全面的了解RN,所以呢我就大概总结了一下RN跨平台移动应用开发框架的介绍。

前言

随着科技的发展,Android与iOS量大操作系统已经称霸江湖(这种稳定对开发者是一件好事,相互竞争也让两大操作系统都在不断的提升完善)。手机硬件配置越来越强大,能力越来越强大,价格越来越平易近人。手机现在已经成为了普通老百姓无时无刻不随身携带的电脑。伴随着这种趋势,市场对移动应用的需求也越来越多,而且要求越来越高。。

这么多年来,移动开发应用开发者做梦都希望有一个能跨平台的开发工具,让他们不要把同一个移动应用使用不同的开发语言写两遍。但是跨平台开发工具的实现很难,很多先驱者倒在了这条路上。直到Facebook给大家带来了React Native。

简介

2015年3月26日,Facebook公司对外正式发布了React Native -- 使用React框架跨平台开发原生移动应用的开源技术框架。开发者可以使用React Native 高效开发Android和iOS操作系统的应用程序。
它的设计理念是:使用React Native开发,即拥有Native的良好人机交互体验,又保留了React框架的开发效率。
(Native是指使用原生开发环境开发的应用程序。Native的良好人机交互体验是指当用户手指在屏幕上操作时,被触摸的UI组件会发生视觉上的变化)
(而React是Facebook从2012年以来慢慢发展起来的一套开发框架,在这套框架上诞生了React.js用来进行网页开发,以及React Native用来进行APP开发。《React、React.js、React native三者的关系后面具体来看》)

特点

  1. 一次学习,随处编写

    React Native提出“Learn once, write anywhere”。使用React Native可为Android和iOS两个操作系统开发应用程序,但不同平台上的代码根据平台会有细小区别,但开发思路是相同的。

  2. 混合开发

    React Native允许开发者在React Native擅长的领域使用React Native开发,而在React Native不能实现的领域或者已经有原生代码实现好的领域直接使用原生代码。React Native 代码开发模块与原生代码开发的模块可以双向通信、无缝衔接。

    • 混合开发情况3种:
      • UI界面由React Native开发,但UI事件处理由原生代码执行。
        • 比如登录功能,React Native开发包含用户名、密码输入以及登录按钮控件的界面,用户输入相关信息,点击登录按钮后,React Native组件将用户名和密码传给原生代码编写的登录模块(Android:java开发,iOS:Object-C或Swift开发),让原生代码执行登录操作。原生代码向服务器发送登录请求,并等待回应。在服务器回应后,原生代码将受到的回应中的登录成功与否,以及其它的一些需要向UI展示的数据传递给React Native组件,React Native接收并解析这些数据,执行UI更新,向用户展示。
      • 将原生使用原生代码实现的UI小部件包装成React Native的自定义组件
        • React Native支持将Widget(官方、第三方开源、开发者自行开发)包装成React Native的自定义组件,然后在React Native代码中方便的使用。
      • 应用界面在React Native开发的界面与原生代码开发的界面间切换
        • 在已用原生代码开发好的项目中加入一些用React Native 开发的新界面,混合开可以做到让应用界面流畅自如地在这两种界面间切换,用户对此不会有任何的感知。
  3. 高效的UI开发

使用React Native开发移动应用的UI界面比使用原生语言快捷高效,再考虑到至少90%的移动界面都可以使用React Native开发,一分代码适配android和iOS两个平台,这相当于减掉了一个开发平台上至少50%的工作量。

React Native可以实现很多UI之外的功能,但开发UI部分绝对是React Native的强项,这体现在如下四个方面:
  1. 高效的UI调试

使用React Native开发,修改了代码后立刻可以在手机上看到效果,没有重新编译启动程序所需要的时间。并且可以打开一个Chrome窗口,所有的代码都移植到Chrome里面运行,断点调试、单步调试、调用栈追踪这些常用的调试方法都可以进行操作。

  1. 学习门槛低、开发难度低
    • 开发语言简单
      • React Native使用ECMAScript 2015语言(简称ES 6)以及自创的JSX(JavaScript中加入标签化的XML)来进行开发。对于没有JavaScript知识背景的移动开发人员,只需要花时间熟悉JavaScript的基本语法后就可以使用React Native进行开发。
    • 语法接近自然语言
      • React Native开发中的函数名、变量名都采用类似于自然语言的命名法,便于记忆。这种代码语句的基本含义基本可以直接推断和理解。
    • 积木式UI开发
      • 使用React Native开发时,是一种类似于搭积木的方式。不论是设计还是实现,通过React Native框架都能做到逻辑结构清晰、开发难度低、可读性高、后期维护方便。
  2. 开发软硬件要求低

使用ReactNative开发对软硬件要求低,RN开发用的软件都是可免费下载、安装使用的正版软件,部分是开源软件。

  1. 使用React Native开发的代价
    • 内存消耗略大
      • 使用React Native 开发的程序运行所需内存比原生代码开发的程序略多。
    • 运行速度
      • 使用React Native开发的代码的运行速度比原生代码略慢。
    • 安装包比原生代码安装包大
      • 使用React Native开发的程序体积比原生代码大。无论是安装包的大小,还是安装后需要的空间都比原生代码编写的程序大。

8.使用RN开发的优点

  • 1、组件化开发,复用率高,组件丰富以后,UI开发较快,前端式开发。

9.使用RN开发的缺点

  • 1、由于还不是稳定版本,版本更新太快,大概两周会有一个新的版本。更新新 版可能会出现不兼容的问题,有时候需要手动解决。

关于RN的概念就说这么多了,我想你看完之后一定会对React Native有一个更好的认识了,接下来我会根据我自己学习RN之路的收获和遇到的困难来写更多的博客。
如果你想了解更多欢迎加入我们一起学React Native 群点击链接加入群【我们一起学React Native】
来一起学习吧

上一篇 下一篇

猜你喜欢

热点阅读