React Native与React的关系及特点

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

React是基础框架,是一套基础设计实现理念,开发者不能直接使用它来开发移动应用或网页。

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

因为React基础框架与React.js框架是同时出现、同时进化发展的,就造成了React基础框架的基本概念、设计思想都是在React.js的相关文档中描述的。

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

二、React Native开发特点

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

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

2、混合开发

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

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

3、高效的移动应用开发

使用RN开发移动应用,绝大部分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呈现。

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

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

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

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

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

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

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

(1)开发语言简单

React Native使用ES6语言,以及自创的JSX语言进行的开发。

(2)语法接近自然语言

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

(3)积木式UI开发

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

8、开发硬件要求低

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

9、使用React Native开发的代价

为了得到React Native开发的优点,使用React Native开发的APP也需要付出一定的代价。

(1)内存消耗大

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

(2)运行速度

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

原文地址:https://www.cnblogs.com/YbchengXumin/p/10987869.html

时间: 2024-10-14 18:27:31

React Native与React的关系及特点的相关文章

React Native之React速学教程(下)

概述 本篇为<React Native之React速学教程>的最后一篇.本篇将带着大家一起认识ES6,学习在开发中常用的一些ES6的新特性,以及ES6与ES5的区别,解决大家在学习React /React Native过程中对于ES6与ES5的一些困惑. ES6的特性 何为ES6? ES6全称ECMAScript 6.0,ES6于2015年6月17日发布,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMAScript-262.

React Native之React速学教程(上)

概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解. What's React React是一个用于组建用户界面的JavaScript库,让你以更简单的方式来创建交互式用户界面. 当数据改变时,React将高效的更新和渲染需要更新的组件.声明性视图使你的代码更可预测,更容易调试. 构建封装管理自己的状态的组件,然后将它们组装成复杂的用户界面.由于组件逻辑是用

React Native之React速学教程(中)

概述 本篇为<React Native之React速学教程>的第一篇.本篇将从React的特点.如何使用React.JSX语法.组件(Component)以及组件的属性,状态等方面进行讲解. What's React React是一个用于组建用户界面的JavaScript库,让你以更简单的方式来创建交互式用户界面. 当数据改变时,React将高效的更新和渲染需要更新的组件.声明性视图使你的代码更可预测,更容易调试. 构建封装管理自己的状态的组件,然后将它们组装成复杂的用户界面.由于组件逻辑是用

小谈React、React Native、React Web

React有三个东西,React JS 前端Web框架,React Native 移动终端Hybrid框架,React Web是一个源码转换工具(React Native 转 Web,并之所以特别提出,是觉得还有些用处). React.React Native共同特点 起源 Facebook 的内部项目 理念 Learn once, write anywhere,而不是Write once, run anywhere.简单说就是,让你在Web.Mobile原生的开发套路一样,但你还是需要写两套代

react native 初识react native

最近找工作,总是被问道,知不知道react Native,我直接回答,没有:这就是动力了 首先是windows下的环境搭建 参考博客: 史上最详细windows版本搭建安装react-native环境配置/ http://www.lcode.org/%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86windows%E7%89%88%E6%9C%AC%E6%90%AD%E5%BB%BA%E5%AE%89%E8%A3%85react-native%E7%8E%

[React Native + Firebase] React Native: Real time database with Firebase -- setup &amp; CRUD

Install: npm i --save firebase // v3.2.1 Config Firebase: First we need to require Firebase: import firebase from 'firebase'; Then in the component constructor, we need to init Firebase: constructor(props){ super(props); // Initialize Firebase var co

谈谈APP架构选型:React Native还是HBuilder

原文链接 导读:最近公司的一款新产品APP要进行研发,老大的意思想用H5来做混合APP以达到高效敏捷开发的目的.我自然就开始进行各种技术选型的调研,这里重点想说的是我最后挑选出的2款hybrid app开发技术方案:RN(react native),HBuilder.React Native是大名鼎鼎的Facebook的开源技术框架,而HBuilder是国内的H5工具开发公 司DCLOUD的产品.我自己先总结下吧:这两个技术框架在开发效率上基本上可以媲美WEB开发的速度,RN强调的是“Learn

【React Native开发】React Native移植原生Android项目

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50519677 本文出自:[江清清的博客] (一)前言 [好消息]个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:http://www.lcode.org 前三节课程我们已经对于React Native For Android的环境搭建,IDE安装配置以及应用运行,调试相关的知识点做了讲解.今天我们来讲一个非常有用的知识点.移植我们已有

React Native - 0序言

1. 什么是React Native? React Native是Facebook在React.js Conf 2015大会上推出的一个用于开发Android t iOS App的一个框架.主要编程语言是Javascript,UI使用JSX(一种语法类似于XML的UI描述语言),它使用虚拟DOM(Virtual DOM),对DOM的修改完全在内存中完成,增量修改DOM树,运行效率非常高. 2. React Native和React.js有什么异同 相同:都是使用JSX和Javascript,他们