felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

React Native 与 React 的关系及特点 #106

Open felix-cao opened 5 years ago

felix-cao commented 5 years ago

一、React、React.js 和 React Native 的关系

React 是一种思想,是一套基础设计理念。

React 思想之上发展出了 React.js 框架用来开发网页,发展出来 React Native 用来开发移动应用。

因为 React 设计思想最初在 React.js 实现并在相关文档中描述的。

后来,Facebook 推出 React Native 后,也没有把 React 的相关概念文档从 React.js 文档中分离出来,就导致了学 React Native 要去看 React.js 文档。

二、React Native开发特点

2.1、一次学习,随处编写;

使用 React Native 可以为 iOSAndroid 操作系统开发应用程序,不同平台上的代码根据平台会有一些微小的区别。

2.2、混合开发

React Native 代码开发的模块与原生代码开发的模块可以双向通信、无缝衔接; 混合开发可以分为3种情况:

通用的 UI 界面与业务逻辑由 React Native 开发,但与手机平台紧密关联的处理由原生代码来执行; 将原来使用原生代码实现的 UI 小部件包装成 React Native 的自定义组件; 应用界面在 React Native 开发的界面与原生代码开发的界面间切换;

2.3、高效的移动应用开发

使用 iOS/Android 开发移动应用,绝大部分 UI 界面与业务逻辑都是一套代码。使用 React Native 开发移动应用的 UI 界面比使用原生语言快捷高效,业务逻辑处理部分开发效率与开发原生代码相仿。

UI 开发是 React Native 的强项的主要体现:

(1)独特的UI实现框架 React 重新思考了 UI 开发过程,并且提出了一套全新的、高效的框架。React Native 官网描述的出发点:用于开发数据不断变化的大型应用程序。

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

(3)跨平台移植代码迅速 使用 React Native 进行 UI 开发时,开发者通常是先在一个操作系统上开发,然后用这套代码去另一个操作系统中添加适配代码,做到一份代码在两个平台运行。

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

2.4、高效的移动应用开发调试

使用 React Native 开发,修改了代码后立刻可以在手机上看到效果,没有重新编译启动程序所需要的时间。

2.5、灵活高效的应用热更新

开发者可以在用户基本无感知的情况下加入新界面、新功能与新的业务逻辑。

2.6、有效降低移动应用安装包体积

移动应用功能越复杂,React Native 安装包相比原生代码安装包就越小。

2.7、学习门槛低、开发难度低

(1)开发语言简单 React Native 使用 ES6 语言,以及自创的 JSX 语言进行的开发。

(2)语法接近自然语言 React Native 开发中的函数名、变量名都采用类似于自然语言的命名法,便于记忆,语言的含义基本上可以直接推断与理解。

(3)积木式 UI 开发 不论是设计还是实现,通过 React Native 框架都能做到结构清晰、开发难度低、可读性高、后期修改维护方便。

2.8、开发硬件要求低

React Native 开发用的软件都是可免费下载、安装使用的正版软件,部分是开源软件,对硬件要求也不高。