首页 web前端 js教程 react和react native的区别是什么

react和react native的区别是什么

Nov 27, 2020 am 10:49 AM
react react native 区别

react和react native的区别是:1、框架作用的平台不同;2、工作原理有差别;3、渲染周期不同;4、react native中所有元素都会被平台指定的react组件替换;5、宿主平台的API不同。

react和react native的区别是什么

本文环境:windows10、react16版本,Dell G3电脑。

(学习视频分享:react视频教程

区别如下:

1、框架作用的平台不同

RN是由React衍生出来的,两种框架都是用JSX开发语法,但是RN是用来开发真正原生渲染的iOS和Andriod移动应用的JS框架,而React是将浏览器作为渲染平台。

2、工作原理的差别

Virtual DOM是介于开发者描述的视图与实际在页面上渲染的视图之间。在浏览器上如果想渲染出来可交互的用户界面,开发者必须操作浏览器的文档对象(document object model),Virtual DOM的出现,就是为了节省这部分操作所消耗的性能。

但是Virtual DOM的巨大潜力,是在于这个抽象层,可以带来很多可能性。

React Native的工作原理,就是调用Objective-C的API去渲染iOS组件,调用Java API去渲染Android组件,而不是渲染到DOM上。桥接使得React可调用宿主平台开放的UI组件,React组件通过render方法返回了描述界面的标记代码。如果是web平台,React最终把标记代码解析成浏览器的DOM;而在React Native中,标记代码会解析成特定平台的组件,例如会表现成iOS平台上的UIView。

3、渲染周期

React的渲染周期开始于react组件挂载到DOM之后,接着React进入渲染周期并根据需要渲染组件。在渲染阶段,React将开发者在return中返回的HTML标记直接按需渲染到页面上。

React Native生命周期与React基本相同,在渲染上因为React Native依赖于桥接,并不在UI主线程运行,它可以在不影响用户体验的前提下执行这些异步调用。

4、创建组件

当编写Web环境的React的时候,视图最终需要渲染成普通的HTML元素;而在React Native中,所有元素都会被平台指定的React组件替换,例如在iOS中,组件被渲染成UIView,而在Android平台,会被渲染成View。

UI元素均为React的组件,而不是像

这样基础的html元素,因此在使用每一个组件的时候,都需要显式的导入,例如:

import { DatePickerIOS } from 'react-native';
登录后复制

5、原生的样式

在Web中,使用CSS样式为React组件添加样式已经是开发过程中不可获取的一部分了。React通常不影响我们编写CSS的方式,并且它确实让样式的动态创建更加容易(通过state和props),除此之外,React基本上不关心我们如何处理样式的。

非Web平台上有大量的方法来处理布局和样式,我们使用React Native时,只需要用一种标准的方法来处理样式,React和宿主平台之间的桥接包含了一个缩减版CSS子集的实现,这个CSS子集主要通过flexbox进行布局,做到了尽量简化,而不是去实现所有的CSS规则。有别于Web平台,CSS的支持程度因浏览器而不同,React Native则做到了样式规则的一致。

6、宿主平台API

使用Web 环境的React 与React Native 最大的不同,在于宿主平台的API。

在Web 中,我们通常要处理采纳标准的不一致和碎片化所引起的问题,并且大多数浏览器只支持部分核心的特性。然而在React Native 中,平台特定的API 在提供优秀原生的用户体验方面发挥了巨大的作用。当然,要考虑的方面还有很多。API 囊括了许多功能,从数据存储到地理服务,以及操控硬件设备(如摄像头)等。非常规平台上的API 会更有趣,例如,React Native 和虚拟现实头盔之间的API 会是什么样的呢?

默认情况下,iOS 和Android 版本的React Native 支持许多常用的特性,甚至可以支持任何异步的本地API。React Native 让宿主平台API 的使用变得更加简单和直观,你可以在其中自由地试验。同时,务必思考一下怎样做才符合目标平台的体验,并在心里设计好交互过程。毋庸置疑,React Native 的桥接不可能暴露宿主平台全部的API。

如果你需要使用一个未支持的特性,完全可以自己动手添加到React Native 中。另外,如果其他人已经集成,那就更好了,所以应该及时查看社区中的实现。值得注意的是,使用平台API 也会对代码复用有帮助。同时,实现平台特定功能的React组件也是平台特定的。

隔离和封装这些组件将会给你的应用带来更大的灵活性。当然,这对你开发Web 应用同样奏效,如果你想共享React 和React Native 的代码,请记住像DOM 这样的API 在React Native 中并不存在。

相关推荐:js教程

以上是react和react native的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

c#多线程和异步的区别 c#多线程和异步的区别 Apr 03, 2025 pm 02:57 PM

多线程和异步的区别在于,多线程同时执行多个线程,而异步在不阻塞当前线程的情况下执行操作。多线程用于计算密集型任务,而异步用于用户交互操作。多线程的优势是提高计算性能,异步的优势是不阻塞 UI 线程。选择多线程还是异步取决于任务性质:计算密集型任务使用多线程,与外部资源交互且需要保持 UI 响应的任务使用异步。

以太币和比特币的区别 以太币和比特币区别是什么 以太币和比特币的区别 以太币和比特币区别是什么 Mar 19, 2025 pm 04:54 PM

以太币与比特币区别显着。技术上,比特币用 PoW,以太币从 PoW 转向 PoS 。交易速度比特币慢,以太币快。应用场景里,比特币侧重支付存储,以太币支撑智能合约与 DApp 。发行上,比特币总量 2100 万枚,以太币无固定总量。安全方面各有挑战。市场价值上,比特币市值居首,两者价格波动都大,但因特性不同,以太币价格走势有独特之处 。

C语言 sum 的作用是什么? C语言 sum 的作用是什么? Apr 03, 2025 pm 02:21 PM

C语言中没有内置求和函数,需自行编写。可通过遍历数组并累加元素实现求和:循环版本:使用for循环和数组长度计算求和。指针版本:使用指针指向数组元素,通过自增指针遍历高效求和。动态分配数组版本:动态分配数组并自行管理内存,确保释放已分配内存以防止内存泄漏。

char与wchar_t在C语言中的区别 char与wchar_t在C语言中的区别 Apr 03, 2025 pm 03:09 PM

在 C 语言中,char 和 wchar_t 的主要区别在于字符编码:char 使用 ASCII 或扩展 ASCII,wchar_t 使用 Unicode;char 占用 1-2 个字节,wchar_t 占用 2-4 个字节;char 适用于英语文本,wchar_t 适用于多语言文本;char 广泛支持,wchar_t 依赖于编译器和操作系统是否支持 Unicode;char 的字符范围受限,wchar_t 的字符范围更大,并使用专门的函数进行算术运算。

欧易okex开盘收盘时间详细介绍 欧易okex开盘收盘时间详细介绍 Mar 18, 2025 pm 01:06 PM

欧易OKEx数字资产交易平台区别于传统证券市场,24小时全天候开放交易,用户可随时进行法币交易、币币交易和合约交易等。 但平台会在系统维护升级或特殊市场事件(如极端行情导致市场剧烈波动)等情况下,提前公告并临时调整交易时间或规则,例如暂停交易或修改合约交易开仓规则等。因此,建议用户密切关注平台公告和市场动态,把握交易时机并做好风险管理。 了解欧易OKEx交易时间及规则调整,才能在数字货币市场中游刃有余。

Apache或Nginx与PHP如何协同工作:mod_php5、php-cgi和php-fpm有什么区别? Apache或Nginx与PHP如何协同工作:mod_php5、php-cgi和php-fpm有什么区别? Apr 01, 2025 pm 12:15 PM

Apache或Nginx与PHP的协同工作机制:mod_php5、php-cgi和php-fpm的比较在使用Apache或Nginx搭建Web服务器并使用PHP进行后端�...

Go语言中`var`和`type`关键字定义结构体的区别是什么? Go语言中`var`和`type`关键字定义结构体的区别是什么? Apr 02, 2025 pm 12:57 PM

Go语言中结构体定义的两种方式:var与type关键字的差异Go语言在定义结构体时,经常会看到两种不同的写法:一�...

有什么手机APP可以将XML转换成PDF? 有什么手机APP可以将XML转换成PDF? Apr 02, 2025 pm 08:54 PM

无法找到一款将 XML 直接转换为 PDF 的应用程序,因为它们是两种根本不同的格式。XML 用于存储数据,而 PDF 用于显示文档。要完成转换,可以使用编程语言和库,例如 Python 和 ReportLab,来解析 XML 数据并生成 PDF 文档。

See all articles