React Native和React有什么区别?

我出于好奇开始学习反应,并想知道React和React Native之间的区别-尽管使用Google找不到令人满意的答案。React和React Native似乎具有相同的格式。他们有完全不同的语法吗?

385897 次浏览

ReactJS是一个JavaScript库,支持前端Web并在服务器上运行,用于构建用户界面和Web应用程序。它遵循可重用组件的概念。

ReactNative是一个移动框架,它利用主机上可用的JavaScript引擎,允许您在JavaScript中为不同平台(iOS,Android和Windows Mobile)构建移动应用程序,允许您使用ReactJS构建可重用组件并与本机组件进一步解释通信

两者都遵循JavaScript的JSX语法扩展。它在引擎盖下编译为React.createElement调用。JSX深入

两者都由Facebook开源。

ReactJS是一个用于构建UI组件层次结构的框架。每个组件都有状态和道具。数据通过道具从顶部流向低级组件。状态在顶级组件中使用事件处理程序更新。

React Native使用React框架为移动应用程序构建组件。React Native为iOS和Android平台提供了一组基本的组件。React Native中的一些组件是Navigator、TabBar、Text、TextInput、View、ScrollView。这些组件在内部使用原生iOSUIKit和Android UI组件。React Native还允许NativeModules在JavaScript中使用ObjectiveC为AndroidiOS和Java编写的代码。

注意:React Native作为一个框架允许以与超文本标记语言和CSS类似的语法开发移动应用程序。React Native组件有效地取代了本机开发中的超文本标记语言。

这里是React项目

在Facebook,他们发明了反应,因此JavaScript可以使用虚拟DOM模型更快地操作网站DOM。

React虚拟域模型相比,DOM完全刷新速度较慢,后者仅刷新页面的一部分(阅读:部分刷新)。

正如你从这个视频中可能理解的那样,Facebook没有发明React,因为他们立即明白部分刷新会比传统的更快。最初他们需要一种方法来减少Facebook应用程序的重建时间,幸运的是,这带来了部分DOM刷新。

反应原生只是React的结果。它是一个使用JavaScript构建原生应用程序的平台。

React Native之前,您需要了解Android和Swift的Java或静态编程语言,iPhone和iPad的Objective-C才能创建本机应用程序。

使用React Native,可以在JavaScript中模仿本机应用程序的行为,最终,你将获得特定于平台的代码作为输出。如果你需要进一步优化你的应用程序,你甚至可以将本机代码与JavaScript混合使用。

正如Olivia Bishop在视频中所说,React Native代码库的85%可以在平台之间共享。这些将是应用程序通常使用的组件和通用逻辑。

15%的代码是特定于平台的。特定于平台的JavaScript赋予了平台味道(并使体验有所不同)。

很酷的是这个特定于平台的代码-已经编写好了,所以你只需要使用它。

React Js是一个Javascript库,您可以在其中使用React开发和运行更快的Web应用程序。

React Native允许您仅使用JavaScript构建移动应用程序,它用于移动应用程序开发。更多信息在这里https://facebook.github.io/react-native/docs/getting-started.html

React-Native是一个框架,其中ReactJS是一个JavaScript库,您可以将其用于您的网站。

React原生提供默认的核心组件(图像、文本),其中React提供了一堆组件并使它们协同工作。

  1. React-Native是一个用于开发Android和iOS应用程序的框架,共享80%-90%的JavaScript代码。

React.js是用于开发Web应用程序的父JavaScript库。

  1. 虽然您在React-Native中经常使用<View><Text>等标签,但React.js使用<div><h1><h2>等Web html标签,它们只是Web/移动开发字典中的同义词。

  2. 对于React.js你需要DOM来渲染html标签的路径,而对于移动应用程序:React-Native使用App注册表来注册你的应用程序。

我希望这是对React.js和React-Native中快速差异/相似之处的简单解释。

从简单的意义上说,除了设计用户交互界面之外,React和React Native遵循相同的设计原则。

  1. React Native有一组单独的标签来定义用户接口,但都使用JSX来定义组件。
  2. 这两个系统的主要目的都是开发可重用的UI组件,并通过其组合来减少开发工作量。
  3. 如果您正确规划和构建代码,您可以在移动和Web上使用相同的业务逻辑

无论如何,这是一个为移动和Web构建用户交互界面的优秀库。

回复:

React是一个声明式、高效且灵活的JavaScript库,用于构建用户界面。

React Native:

React Native让您仅使用JavaScript构建移动应用程序。它使用与React,让您从声明式编写丰富的移动UI
使用React Native,您无需构建“移动Web应用程序”,一个“HTML5应用程序”或“混合应用程序”。您构建了一个真正的移动应用程序与使用Objective-C或Java构建的应用程序无法区分。反应Native使用与常规iOS相同的基本UI构建块安卓应用程序。你只要用JavaScript和React.
React Native可让您更快地构建应用程序。无需重新编译,您可以立即重新加载应用程序重新加载,您甚至可以在保留应用程序的同时运行新代码试试看-这是一种神奇的体验。
React Native与Objecte-C、Java或Swift。如果你需要优化,很容易下拉到原生代码您的应用程序的几个方面。构建一部分也很容易您在React Native中的应用程序,以及使用本机代码的应用程序的一部分直接-这就是Facebook应用程序的工作方式。

所以基本上反应是用于Web应用程序视图的UI库,使用javascriptJSXReact Native是React顶部的额外库,为iOSAndroid设备制作本机应用程序。

反应代码示例:

import React, { Component } from 'react';import ReactDOM from 'react-dom';
class Clock extends React.Component {constructor(props) {super(props);this.state = {date: new Date()};}
componentDidMount() {this.timerID = setInterval(() => this.tick(),1000);}
componentWillUnmount() {clearInterval(this.timerID);}
tick() {this.setState({date: new Date()});}
render() {return (<div><h1>Hello, world!</h1><h2>It is {this.state.date.toLocaleTimeString()}.</h2></div>);}}
ReactDOM.render(<Clock />,document.getElementById('root'));

ReactNative代码示例:

import React, { Component } from 'react';import { Text, View } from 'react-native';
class WhyReactNativeIsSoGreat extends Component {render() {return (<View><Text>If you like React on the web, you'll like React Native.</Text><Text>You just use native components like 'View' and 'Text',instead of web components like 'div' and 'span'.</Text></View>);}}

有关反应的更多信息,请访问Facebook团队创建的官网链接:

https://reactjs.org/

有关ReactNative的更多信息,请访问下面的React原生网站:

https://reactnative.dev/

ReactJS是一个核心框架,旨在构建基于反应式模式的组件隔离,您可以将其视为MVC中的V,尽管我想说明反应确实带来了不同的感觉,特别是如果您不太熟悉反应式概念。

ReactNative是另一层,旨在为Android和通用iOS平台提供一组组件。所以代码看起来基本上与ReactJS相同,因为是ReactJS,但它在移动平台上本机加载。你还可以将更复杂和平台相关的API与Java /Objective-C/Swift桥接起来,具体取决于操作系统,并在React中使用它。

反应ReactNativeReactDOM的基本抽象,所以如果你要使用React Native,你也需要React……与Web相同,但不是React Native,你需要React DOM。

由于React是基本的抽象,一般的语法和工作流是相同的,但是你使用的组件是非常不同的,因此你需要学习这些差异,这与React所谓的moto是一致的,即“一次学习,随处写入”,因为如果你知道React(基本抽象),你可以简单地学习平台之间的差异,而无需学习另一种编程语言,语法和工作流。

ReactNative主要是用JavaScript开发的,这意味着你需要的大部分代码都可以跨平台共享。React Native将使用原生组件渲染。React Native应用程序以其目标平台所需的语言开发,iOS的Objective-C或Swift,Android的Java等。编写的代码不会跨平台共享,它们的行为各不相同。它们可以不受任何限制地直接访问平台提供的所有功能。

反应是Facebook开发的用于构建用户界面的开源JavaScript库。它用于处理Web和移动应用程序的视图层。ReactJS用于创建可重用的UI组件。它是目前it领域最流行的JavaScript库之一,背后有强大的基础和庞大的社区。如果你学习ReactJS,你需要有JavaScript、HTML5和CSS的知识。

关于组件生命周期和所有其他花里胡哨的东西,它基本上是相同的。

主要区别在于使用的JSX标记。React使用一个类似于html的标记。另一个是react-Native用于显示视图的标记。

React Native用于移动应用程序,React用于网站(前端)。两者都是Facebook发明的框架。React Native是一个跨平台开发框架,这意味着人们可以为IOS和Android编写几乎相同的代码并且它会工作。我个人对React Native了解得更多,所以我就把它留在这里。

你的组件告诉React你要渲染什么——然后当你的数据发生变化时,React会有效地更新和渲染正确的组件。这里,ShoppingList是一个React组件类,或React组件类型。

React Native应用程序是一个真正的移动应用程序。使用React Native,您不会构建“移动Web应用程序”、“HTML5应用程序”或“混合应用程序”。您构建的真正移动应用程序与使用Objective-C或Java构建的应用程序没有区别。React Native使用与常规iOS和Android应用程序相同的基本UI构建块。

更多信息

ReactJS是用于构建Web界面的javascript库。您需要像webpack这样的捆绑器并尝试安装构建网站所需的模块。

ReactNativejavascript框架,它提供了编写多平台应用程序(如iOS或Android)所需的一切。您需要安装xcode和android Studio来构建和部署您的应用程序。

与ReactJS不同,React-Native不使用超文本标记语言,而是使用类似的组件,你可以使用跨ios和android来构建你的应用程序。这些组件使用真正的原生组件来构建ios和android应用程序。由于这一点,React-Native应用程序与其他混合开发平台不同,感觉真实。组件还增加了代码的可重用性,因为你不需要在ios和android上再次创建相同的用户交互界面。

反应是Javascript库,用于构建像Facebook这样的大/小界面Web应用程序。

自然反应是用于在Android、IOS和Windows Phone上开发原生移动应用程序的Javascript框架。

两者都由Facebook开源。

以下是我所知道的差异:

  1. 它们有不同的html标签:React Native用于处理文本,而不是在React中。
  2. React Native正在使用Touchable组件而不是常规按钮元素。
  3. React Native有用于渲染列表的ScrollView和FlatList组件。
  4. React Native使用AsyncStorage,而React使用本地存储。
  5. 在React中,Native路由器充当堆栈,而在React中,我们使用Route组件来映射导航。

首先,相似之处: React和React Native(RN)都是为了创建灵活的用户界面而设计的。这些框架有很多好处,但最基本的收获是它们是为UI开发而设计的。Facebook在React几年后开发了RN。

React:Facebook设计了这个框架,就像在超文本标记语言/XML中编写JavaScript一样,这就是为什么标签被称为“JSX”(JavaScript XML),并且类似于熟悉的超文本标记语言,例如<div><p>。React的一个标志是大写字母标签,表示自定义组件,例如<MyFancyNavbar />,也存在于RN中。然而,React使用的DOM。DOM存在于超文本标记语言中,因此React用于Web开发。

React Native:RN不使用超文本标记语言,因此不用于Web开发。它用于…几乎所有其他!移动开发(iOS和Android),智能设备(例如手表,电视),增强现实等。由于RN没有DOM可与之交互,而不是使用React中使用的相同类型的超文本标记语言标签,它使用自己的标签,然后编译成其他语言。例如,RN开发人员使用RN的内置<View>标签而不是<div>标签,该标签在幕后编译成其他本机代码(例如,Android上的android.view;和iOS上的UIView)。

简而言之:它们非常相似(用于UI开发),但用于不同的媒介。

我们无法精确比较它们。有用例差异

(2018更新)


ReactJS

React的主要焦点网页开发。

    • React的虚拟DOM比传统的全刷新模型更快,因为虚拟DOM只刷新页面的一部分。
    • 你可以在React中重用代码组件,节省大量时间。(你也可以在React Native中。)
    • 作为一个企业:您的页面完全呈现,从服务器到浏览器将改进您的Web应用程序的SEO
    • 提高调试速度让您的开发人员的生活更轻松。
    • 您可以使用混合移动应用程序开发,如Cordova或Ionic,使用React构建移动应用程序,但可以从多个方面更有效地使用React Native构建移动应用程序。

ReactNative

React的扩展,定位在移动开发。

    • 它的主要焦点是移动用户界面
    • iOS&Android覆盖。
    • 可重用 React Native UI组件和模块允许混合应用程序本机渲染。
    • 无需大修您的旧应用程序。您所要做的就是将React Native UI组件添加到现有应用程序的代码中,而无需重写。
    • 不使用超文本标记语言来渲染应用程序.提供以类似方式工作的替代组件,因此不难理解它们。
    • 因为您的代码不会在超文本标记语言页面中呈现,这也意味着您将无法重用您之前在React中使用的任何库呈现任何类型的超文本标记语言,SVG或Canvas。
    • React Native不是由Web元素组成的,不能以相同的方式进行样式化。再见CSS动画!

希望能帮到你:)

reactjs使用react-dom而不是浏览器dom,而reactnative使用虚拟dom,但两者使用相同的语法,即如果你可以使用reactjs,那么你可以使用reactjsnative.because你在reactjs中使用的大多数库都可以在reactnative中使用,就像你的React导航和其他常见的库一样。

总结:React.jsWeb开发,而React-Native用于移动应用程序开发

简单来说ReactJS是父库,它根据主机环境(浏览器、移动设备、服务器、桌面…等)返回要渲染的内容。除了渲染之外,它还提供了其他方法,如生命周期挂钩…等。

在浏览器中,它使用另一个库react-dom来呈现DOM元素。在移动设备中,它使用React-Native组件来呈现特定于平台(IOS和Android)的原生UI组件。所以,

React+react-dom=Web开发

React+React-Native=移动端开发

React Js使用超文本标记语言Dom进行操作。但是React Native正在使用移动(iOS /android)原生用户界面组件进行操作。

React js-React JS是前端javascript库,它是大型库而不是框架

  • 它遵循基于组件的方法,有助于构建
    可重用的UI组件
    • 它用于开发复杂的交互式Web和移动UI
    • 尽管它在2015年才开源,但它拥有支持它的最大社区之一。

ReactNative-React Native是一个开源的移动应用程序框架。

ReactNative

  • 它是一个使用JavaScript构建本机应用程序的框架。

  • 它编译为原生应用程序组件,这使您可以构建本地移动应用程序。

  • 无需大修您的旧应用程序。您所要做的就是添加React原生UI组件到现有应用程序的代码中,而无需重写。

React js

  • 它支持前端Web并在服务器上运行,用于构建用户界面和Web应用程序。

  • 它还允许我们创建可重用的UI组件。

  • 您可以在React JS中重用代码组件,从而节省大量时间。

为了回应上面@高雅的评论,这里是之前在React中发布的时钟代码的React Native版本(对不起,我无法直接评论该部分,否则我会在那里添加代码):

ReactNative代码示例

import { AppRegistry } from 'react-native';import React, { Component } from 'react';import { View, Text, StyleSheet } from 'react-native';
class Clock extends Component {constructor(props) {super(props);this.state = { date: new Date() };}
componentDidMount() {this.timerID = setInterval(() => this.tick(),1000);}
componentWillUnmount() {clearInterval(this.timerID);}
tick() {this.setState({date: new Date()});}
render() {return (<View style={styles.container}><Text style={styles.sectionTitle}>Hello, world!</Text><Text style={styles.sectionDescription}>It is {this.state.date.toLocaleTimeString()}.</Text></View>);}}
const styles = StyleSheet.create({container: {backgroundColor: 'white',flex: 1,justifyContent: 'center',},sectionTitle: {fontSize: 24,fontWeight: '600',color: 'black',alignSelf: 'center',},sectionDescription: {marginTop: 8,fontSize: 18,fontWeight: '400',color: 'darkgrey',alignSelf: 'center',},});
AppRegistry.registerComponent("clock", () => Clock);

请注意,样式完全是我的选择,并不寻求直接复制React代码中使用的<h1><h2>标签。

不同之处如下:
1- React-Native是一个用于创建移动应用程序的框架,其中ReactJS是一个JavaScript库,您可以将其用于您的网站。
2- React-Native在React使用时不使用超文本标记语言来渲染应用程序。3-React-Native仅用于开发移动应用程序,而React用于网站和移动设备。

派对有点晚了,但这里有一个更全面的答案和例子:

反应

React是一个基于组件的UI库,它使用“影子DOM”来有效地根据更改的内容更新DOM,而不是为每次更改重建整个DOM树。它最初是为Web应用程序构建的,但现在也可以用于移动和3D/vr。

React和React Native之间的组件不能互换,因为React Native映射到本机移动UI元素,但可以重用业务逻辑和非渲染相关代码。

ReactDOM

最初包含在React库中,但在React被用于Web以外的其他平台后被拆分。它作为DOM的切入点,并与React联合使用。

示例:

import React from 'react';import ReactDOM from 'react-dom';
class App extends Component {state = {data: [],}
componentDidMount() {const data = API.getData(); // fetch some datathis.setState({ data })}
clearData = () => {this.setState({data: [],});}
render() {return (<div>{this.state.data.map((data) => (<p key={data.id}>{data.label}</p>))}<button onClick={this.clearData}>Clear list</button></div>);}
}
ReactDOM.render(App, document.getElementById('app'));

ReactNative

React Native是一个跨平台的移动框架,它使用React并通过“桥”在Javascript和它的原生对应物之间进行通信。因此,使用React Native时,很多UI结构必须不同。例如:在构建列表时,如果您尝试使用map而不是React Native的FlatList来构建列表,您将遇到主要的性能问题。React Native可用于构建IOS/Android移动应用程序,以及智能手表和电视。

博览会

在启动一个新的React Native应用程序时,Expo是首选。

是一套围绕React Native和原生平台构建的工具和服务,可帮助您在iOS、Android和Web app上开发、构建、部署和快速迭代

备注:使用Expo时,您只能使用他们提供的Native Api。您包含的所有其他库都需要是纯javascript,否则您将需要弹出exo。

使用React Native的相同示例:

import React, { Component } from 'react';import { Flatlist, View, Text, StyleSheet } from 'react-native';
export default class App extends Component {state = {data: [],}
componentDidMount() {const data = API.getData(); // fetch some datathis.setState({ data })}
clearData = () => {this.setState({data: [],});}
render() {return (<View style={styles.container}><FlatListdata={this.state.data}renderItem={({ item }) => <Text key={item.id}>{item.label}</Text>}/><Button title="Clear list" onPress={this.clearData}></Button></View>);}
}
const styles = StyleSheet.create({container: {flex: 1,},});

差异:

  • 请注意,渲染之外的所有内容都可以保持不变,这就是为什么业务逻辑/生命周期逻辑代码可以在React和React Native之间重用的原因
  • 在React Native中,所有组件都需要从react Native或其他UI库导入
  • 使用某些映射到本机组件的API通常比尝试在javascript端处理所有内容更高性能。例如。映射组件以构建列表与使用平面列表
  • 细微的区别:像onClick这样的东西变成了onPress,React Native使用样式表以更高性能的方式定义样式,React Native使用flexbox作为默认布局结构来保持响应。
  • 由于React Native中没有传统的“DOM”,因此只能在React和React Native中使用纯JavaScript库

React360

另外值得一提的是,React还可以用于开发3D/VR应用程序。组件结构与React Native非常相似。https://facebook.github.io/react-360/

简单的React Js适用于Web React Native适用于跨平台移动应用程序!

React vs React Native

ReactJS

  • React用于创建网站、Web应用程序、SPA等。

  • React是一个用于创建UI层次结构的Javascript库。

  • 它负责UI组件的渲染,它被认为是MVC框架的V部分。

  • React的虚拟DOM比传统的完全刷新模型更快,因为虚拟DOM只刷新页面的一部分,从而减少页面刷新时间。

  • React使用组件作为UI的基本单元,可以重复使用,从而节省编码时间。简单易学

    ReactNative

  • React Native是一个用于创建跨平台Native应用程序的框架。这意味着您可以创建原生应用程序,并且相同的应用程序将在Android和iOS上运行。

  • React Native拥有ReactJS的所有好处

  • React Native允许开发人员以Web风格的方式创建本机应用程序。

React是一个用于构建用户界面的JavaScript库。它用于重用UI组件。React Native是一个JavaScript框架,用于为iOS和Android编写真实的本地渲染移动应用程序。两者都是由Facebook开发的,它们共享相同的生命周期方法。

我知道已经有很多答案了,但在阅读了所有这些之后,我觉得没有人能解释这两者之间的架构差异以及这两者是如何工作的,所以我相信还有解释的余地。

反应

React=Vanilla JS+ES6+超文本标记语言+CSS=JSX=Web Apps(前端)

所以让我们先谈谈反应,因为本地开发也是基于反应的,并且在那里使用了相同的JS概念。

React是一个JS库,用于制作美观、灵活、高效单页web应用程序,所以现在你的脑海中会出现一个问题单页网页应用程序是什么?

单页申请

单页应用程序是在浏览器中运行的应用程序,在使用过程中不需要重新加载页面。您每天都在使用这些类型的应用程序。例如:Gmail、谷歌地图、Facebook或GitHub。SPA通过尝试模仿浏览器中的“自然”环境来提供出色的用户体验-没有页面重新加载,没有额外的等待时间。它只是您访问的一个网页,然后使用JavaScript加载所有其他内容-他们非常依赖JavaScript。SPA独立请求标记和数据,并在浏览器中直接呈现页面。我们可以做到这一点,这要归功于AngularJS、Ember.js、Meteor.js、Knockout.js、React.js和Vue.js.等高级JavaScript框架单页网站有助于将用户保持在一个舒适的网络空间中,其中内容以简单、轻松和可行的方式呈现给用户。

它是如何运作的

现在你知道什么是SPA,所以你知道它是一个Web应用程序,所以它将使用超文本标记语言元素运行到浏览器中,并使用JS来处理与这些元素相关的所有功能。它使用虚拟DOM来呈现组件中的新更改。

本地开发

现在你对反应有了一些想法,所以让我们谈谈反应原生

React-Native=React(Vanilla JS+ES6+JS和Native代码之间的桥梁)+Native(iOS,Android)=移动应用程序(Android,iOS,也支持Web,但有一些限制)

React-Native用于使用React制作漂亮的跨平台移动应用程序(Android,iOS)。

它是如何运作的

在React-Native中,有两个线程。

  1. JS线程

  2. 本地线程

所有的React代码都在js线程中执行,最终值传递给本机线程,它用最终值在屏幕上绘制布局。

JS线程执行所有计算并将数据传递给本机,如何?

React使用Async Bridge将数据以JSON格式传递给Native线程,称为React-Native

注意:新架构不再依赖于桥,它使用JSI和结构来同步发生的本机和JS代码之间的通信(在下一节中解释)。

因此,我们使用Native组件在React-Native中制作表示性视图,并使用该桥梁在这两个不同的世界之间进行通信。

JS线程的速度足以执行JavaScript,而本机线程的速度也足以执行本机代码,但由于React使用异步桥在这两个世界之间进行通信,因此重载此桥会导致性能问题。

更新:React-Native现在正在经历一个重新架构阶段,Facebook团队正试图移除异步桥,以便在JS和本机之间同步通信,这个重新架构的主要部分是JSI(Javascript接口)和结构。

JSI: JSI消除了本机(Java /ObjC)和Javascript代码之间的桥梁的需要。它还消除了将所有信息序列化/反序列化为JSON以在两个世界之间进行通信的要求。JSI通过关闭javascript和本机世界为新的可能性打开了大门。

以下是JSI提供的主要内容。

  1. Javascript接口,允许我们在Javascript运行时注册方法。这些方法可以通过Javascript世界中的全局对象获得。

  2. 这些方法可以完全用C++编写,也可以在iOS上与ObjectiveC代码通信,在Android上与Java代码通信。

  3. 任何当前使用传统桥在Javascript和原生世界之间进行通信的原生模块都可以通过在C++中编写一个简单的层来转换为JSI模块在编写iOS,这一层很简单,因为C++可以直接在ObjectiveC中运行,因此所有iOS框架和代码现在都可以使用。

  4. 但是,在Android上,我们必须通过JNI进行额外的努力。

  5. 这些方法可以是完全同步的,这意味着使用async/wait不是强制性的。

面料: Fabric是一个新的UI层,允许我们与原生UI组件同步通信,根据文档

Fabric是React Native的新渲染系统,是传统渲染系统在概念上的演进,核心原则是在C++统一更多渲染逻辑,提升与宿主平台的互操作性,为React Native解锁新能力。开发始于2018年,2021年,Facebook应用中的React Native由新的渲染器支持。

让我们来谈谈这两个框架之间的共同点和区别。

原生动画原生动画开发FacebookFacebook
功能反应反应本机
平台WebAndroid, IOS, Web
开源
用户界面超文本标记语言+CSS本地组件(iOS,Android,Web)
体系结构虚拟DOM虚拟DOM+网桥+本机实现
动画CSS动画
样式CSSJS样式表
FacebookFacebook

简单的比较应该是

ReactJs

return(<div><p>Hello World</p></div>)

ReactNative

return(<View><Text>Hello World</Text></View>)

React Native没有divph1等Html元素,相反,它具有对移动设备有意义的组件。
更多细节https://reactnative.dev/docs/components-and-apis

反应用于在浏览器中工作的Web应用程序。React Native用于在移动应用程序中工作的android和IOS应用程序。

React本质上是Facebook自己开发的。它实际上是在2013年进入技术世界的。React是一个JS库,而不是框架。React最引人注目的一点是它能够同时创建前端和后端。

在React Native之前,你需要知道JavaAndroid或Objective-CiPhone和iPad来创建原生的React应用程序。:简而言之,React是Webdev技术,React-Native是一种移动开发技术。

React-Native是一个跨平台,使用reactjs为所有平台(iOS,Android,Web,Windows,Mac,Linux)构建具有相同代码的应用程序。

实现上的区别在于reactjs使用超文本标记语言标签,而react-Native使用react-Native特定组件。

它是一个用于OS和android应用程序开发的混合工具。您不必编写两次代码。它使用本地组件和React。它还为您提供对服务器(Firebase)的访问权限。如需更多帮助,请点击链接:https://reactnative.dev/https://nativebase.io/

React是一个使用JavaScript构建应用程序的框架。React Native是一个完整的平台,允许你构建本机的跨平台移动应用程序,React.js是一个用于构建高性能UI层的JavaScript库。React.js是React Native的核心,它体现了React的所有原理和语法,所以学习曲线很容易。平台是导致他们技术差异的原因。就像React中的浏览器代码是通过Virtual DOM渲染的,而React Native使用Native API在移动设备上渲染组件。React使用超文本标记语言,使用React Native,你需要熟悉React Native语法。React Native也不使用CSS。这意味着您必须使用React Native附带的动画API来动画应用程序的不同组件。

总之,React非常适合为您的Web界面构建动态、高性能、响应式UI,而React Native旨在为您的移动应用程序提供真正的原生感觉。

Reff:反应-js和反应-原生之间的区别是什么

ReactNativejavascript框架,它附带了编写多平台应用程序(如iOS或Android)所需的一切。

ReactJSjavascript库,用于构建Web界面和构建您的网站。

在Reactjs中,虚拟DOM用于在Reactjs中渲染浏览器代码,而在React Native中,原生API用于在移动设备中渲染组件。

使用Reactjs开发的应用程序在UI中呈现超文本标记语言,而React Native使用JSX来呈现UI,这只不过是javascript。

  • React Native是一个开源的移动应用程序框架。
  • React JS是前端JavaScript库,它是一个大型库,而不是一个框架。

这里有一个非常好的解释:

Reactjs是一个支持前端和服务器的JavaScript库。此外,它可用于为移动应用程序和网站创建用户界面。

ReactNative是一个跨平台的移动框架,使用Reactjs构建应用程序和网站。React Native编译为原生应用程序组件,使程序员能够构建可以在不同平台上运行的移动应用程序,例如Windows、Android、iOSJavaScript。

  • 对于Web平台,Reactjs可以被描述为React DOM的基本派生,而React Native本身就是一个基本派生,这意味着语法和工作流程保持不变,但组件会发生变化。

  • 最终,Reactjs是一个JavaScript库,它使程序员能够创建一个引人入胜且高性能的UI层,而React Native是一个用于构建跨平台应用程序的完整框架,无论是Web,iOS还是Android。

  • 在Reactjs中,虚拟DOM用于在Reactjs中渲染浏览器代码,而在React Native中,原生API用于在移动设备中渲染组件。

  • 使用Reactjs开发的应用程序在UI中呈现超文本标记语言,而React Native使用JSX来呈现UI,这只不过是javascript。

  • CSS用于在Reactjs中创建样式,而样式表用于在React Native中创建样式。

  • 在Reactjs中,动画是可能的,使用CSS,就像Web开发一样,而在React Native中,动画API用于在React Native应用程序的不同组件中诱导动画。

  • 如果需要为Web界面构建高性能,动态和响应式UI,那么Reactjs是最佳选择,而如果需要为移动应用程序提供真正的原生感觉,那么React Native是最佳选择。

更多:https://www.simform.com/reactjs-vs-reactnative/

React Native是一个使用React构建android和ios应用程序的框架。React是一个用于构建出色网站的Web框架。

区别很简单。

我们将React用于Web应用程序,并将React Native用于开发移动应用程序。

React更多地关注改进的UI(用户界面),RN为所有操作系统共享一个公共逻辑层。这为已经处理了很长一段时间的问题提供了解决方案,例如开发效率低下、部署时间较慢和开发人员生产力较低。

需要注意的是,React是一个用于Web开发的库,而React Native是一个平台。

另一个有趣的事情是,当你想使用RN时,你拥有启动项目所需的一切。另一方面,使用React创建新项目意味着你只选择了构建Web应用程序所需的众多库中的一个。

您可以在该文章中找到更多有用的信息:https://pagepro.co/blog/react-native-faq-all-you-need-to-know

React和React原生之间的主要区别是React带有基于Web的UI组件,其中React原生带有与移动相关的UI小部件,其余一切几乎相似。