React Native 跨平台开发 简介

React Native 简介

2015年3月26日,Facebook公司对外正式发布了React Native -- 使用React框架跨平台开发原生移动应用的开源技术。开发者可以使用React Native 高效开发Android和iOS操作系统的应用。它的设计理念是:使用React Native开发,即拥有Native的良好人机交互体验,又保留了React框架的开发效率。


React Native开发特点:

1.一次学习,随处编写

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

2.混合开发

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

混合开发情况:

1)UI界面由React Native开发,但UI事件处理由原生代码执行。

比如登录功能,React Native开发包含用户名、密码输入以及登录按钮控件的界面,用户输入相关信息,点击登录按钮后,React Native组件将用户名和密码传给原生代码编写的登录模块(Android:java开发,iOS:Object-C或Swift开发),让原生代码执行登录操作。原生代码向服务器发送登录请求,并等待回应。在服务器回应后,原生代码将受到的回应中的登录与否,以及其它的一些需要向UI展示的数据传递给React Native组件,React Native接收并解析这些数据,执行UI更新,向用户展示。

2)将原生使用原生代码实现的UI小部件包装成React Native的自定义组件

React Native支持将Widget(官方、第三方开源、开发者自行开发)包装成React Native的自定义组件,然后在React Native代码中方便的使用。

3)应用界面在React Native开发的界面与原生代码开发的界面间切换

在已用原生代码开发好的项目中加入一些用React Native 开发的新界面,混合开啊做到让应用界面流畅的在这两种界面间切换,用户对此不会有任何的感知。

3.高效的UI开发

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

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

1)独特的UI实现框架

复杂UI界面开发难点的本质问题就是:如何将来自网络侧与用户侧的动态数据高效、实时、正确地呈现在复杂的用户界面上。FaceBook的React框架是这个问题的一个优秀解决方案。React Native官网描述它的出发点为:用于开发数据不断变化的大型应用程序。相比传统的UI开发,React开辟了一个相当另类的途径,实现了UI界面的高效率、搞性能开发。使用React开发,开发者永远只需要关心数据。当数据改变时,开发者只需要告诉React数据变了,有React来实现UI界面的改变。

2)组件化开发

React 推荐已组件的方式去重新思考UI构成,将UI上每个功能相对独立的模块定义成组件,然后将小的组件通过组合或者嵌套的方式构成大的组件,最终完成整体的UI的构建。

React强调将应用划分成多个互不相关的组件,每个组件作为独立的视图。这使得开发者更容易进行软件迭代升级,因为不用在改动某一小部分时把整个系统都梳理一遍。最重要的的是,React包装了复杂而易变的数据到对象的实现,改为提供一个声明式的结构,使得整个程序模型变得抽象而简单。使用React来构建网页或者手机UI时,代码变的更容易预测。这种可预测性使得开发者在快速迭代产品时可以更多地信任已有的代码,最终应用程序也变得更为可靠。更进一步的,React框架不仅仅使扩大应用规模变得容易,也使得团队规模更容易进行调整。

这样开发出来的代码结构清晰、公用性高、可移植性高。上一个项目的某些组件,可以很方便的拿来在下一个项目中使用;好的开源组件,可以下载后很方便地集成在我们的项目中使用。

3)跨平台移植代码迅速

使用React Native进行UI开发时,开发者通常在一个平台上开发,然后用这一套代码去另一个操作系统中进行修正。通常需要修正的代码只有总代码的5%甚至更低。

4)自动适配不同屏幕的手机

使用React Native开发,开发者无须为不同屏幕分辨率准备不同的图片资源或者布局文件,甚至可以不考虑屏幕大小的问题。通过灵活的布局方式,React Native可以做到在不同的手机屏幕上高效、清晰的UI呈现。

4.高效的UI调试

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

5.学习门槛低、开发难度低

1)开发语言简单

React Native使用ECMAScript 2015语言(简称ES 6)以及自创的JSX(JavaScript中加入标签化的XML)来进行开发。对于没有JavaScript知识背景的移动开发人员,只需要花几天时间熟悉JavaScript的基本语法后就可以使用React Native进行开发。

2)语法接近自然语言

React Native开发中的函数名、变量名都采用类似于自然语言的命名法,便于记忆。这种代码语句的基本含义基本可以直接推断和理解。

3)积木式UI开发

使用React Native开发时,是一种类似于搭积木的方式。不论是设计还是实现,通过React Native框架都能做到逻辑结构清晰、开发难度低、可读性高、后期维护方便。


使用React Native的代价

为了得到React Native开发的优点,使用React Native开发的App也需要付出一些代价。主要体现在三个方面:

1.内存消耗略大

使用React Native 开发的程序运行所需内存比原生代码开发的程序略多。

2.运行速度

使用React Native开发的代码的运行速度比原生代码略慢。

3.安装包比原生代码安装包大

无论是安装包的大小还是安装后需要的空间都比原生代码编写的程序大。

你可能感兴趣的:(React Native 跨平台开发 简介)