React Native和React有什么区别?

时间:2016-01-06 19:51:57

标签: javascript reactjs react-native javascript-framework

我出于好奇心开始学习 React ,想知道React和React Native之间的区别 - 虽然用谷歌找不到满意的答案。 React和React Native似乎具有相同的格式。它们的语法完全不同吗?

52 个答案:

答案 0 :(得分:551)

ReactJS是一个JavaScript库,支持前端Web和在服务器上运行,用于构建用户界面和Web应用程序。

React Native是一个移动框架,可编译为本机应用程序组件,允许您使用JavaScript为不同平台(iOS,Android和Windows Mobile)构建本机移动应用程序,允许您使用ReactJS构建组件,并在引擎盖下实现ReactJS。

两者都是Facebook开源的。

答案 1 :(得分:195)

正如你所说,Google无法向你解释这一点,但如果他们发明了React,谷歌会非常高兴。

以下是 React 项目(https://github.com/facebook/react)。

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

React virtual-dom model相比,DOM完全刷新速度较慢,video仅刷新部分页面(读取:部分刷新)。

正如您可能从https://github.com/facebook/react-native了解到的那样,Facebook并没有发明React,因为他们立即明白部分刷新会比传统刷新更快。最初他们需要一种方法来减少Facebook应用程序的重建时间,幸运的是这使部分DOM刷新变为现实。

React native video)只是React的结果。它是一个使用JavaScript构建本机应用程序的平台。

React native 之前,您需要了解适用于Android的Java或适用于iPhone和iPad的Objective-C来创建原生应用。

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

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

15%的代码是特定于平台的。特定于平台的JavaScript提供了平台风格(并且在体验上有所不同)。

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

答案 2 :(得分:70)

<强>阵营:

  

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

React Native:

  

React Native可以让你   仅使用JavaScript构建移动应用程序。它使用相同的设计   React,让您从声明中构建丰富的移动UI   组件。
使用React Native,您不构建“移动Web应用程序”,   “HTML5应用”或“混合应用”。你构建了一个真正的移动应用程序   与使用Objective-C或Java构建的应用程序无法区分。应对   Native使用与常规iOS和iOS相同的基本UI构建块   Android应用。您只需将这些构建块放在一起使用即可   JavaScript和React。
React Native可让您更快地构建应用程序。   您可以立即重新加载应用,而不是重新编译。随着热   重新加载,您甚至可以在保留应用程序的同时运行新代码   州。尝试一下 - 这是一种神奇的体验。
React Native   与使用Objective-C,Java或Java编写的组件平滑地结合   迅速。如果需要优化,可以简单地下载到本机代码   您的申请的几个方面。建立一部分也很容易   您的应用程序在React Native中,以及使用本机代码的应用程序的一部分   直接 - 这就是Facebook应用程序的运作方式。

所以基本上 React 是用于您的网络应用视图的UI库,使用 javascript JSX React 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')
);


React Native 代码示例:

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>
    );
  }
}

有关 React 的详细信息,请访问facebook的官方网站:

https://facebook.github.io/react

有关 React Native 的详细信息,请访问React native website:

https://facebook.github.io/react-native

答案 3 :(得分:44)

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

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

答案 4 :(得分:28)

  1. React-Native是一个开发Android和Android的框架。 iOS应用程序共享80% - 90%的Javascript代码。
  2. 虽然React.js是用于开发Web应用程序的父Javascript库。

    1. 在React-Native中频繁使用<View><Text>等标记时,React.js使用网页html标记,例如<div> <h1> {{1这只是网络/移动开发词典中的同义词。

    2. 对于React.js,您需要DOM用于html标记的路径呈现,而对于移动应用程序:React-Native使用AppRegistry注册您的应用。

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

答案 5 :(得分:16)

首先,相似之处:react&react-native(RN)均旨在允许开发人员创建灵活的用户界面。这些框架有很多好处,但是最根本的收获是它们是用于UI开发的。

反应: Facebook(在做出反应后几年开发了RN)设计此框架的方式几乎就像在HTML / XML内编写JavaScript,这就是为什么标记称为“ JSX ”(JavaScript XML)的原因(例如熟悉的类似HTML的标记,例如<div><p>)。 React的标志是大写字母标签,它表示一个自定义组件,例如<MyFancyNavbar />,对于RN也是如此。但是,它们的不同之处在于React使用the DOM。由于DOM存在于HTML中,因此React用于Web开发。

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

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

答案 6 :(得分:13)

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

(2018年更新)


ReactJS

主要是 网站开发

    • React的虚拟DOM比常规的完全刷新模型要快,因为虚拟DOM仅刷新页面的一部分。
    • 您可以在React JS中重用代码组件,从而节省了很多时间。 (就像您在RN中一样)
    • 作为企业:从服务器到浏览器的页面完全呈现将改善您的网络应用的SEO
    • 提高了调试速度,使您的开发人员的生活更加轻松。
    • 您还可以使用混合移动应用程序开发(例如Cordova或Ionic)来通过ReactJS来构建移动应用程序,但是从多个方面来看,它可以更有效地利用React Native来构建移动应用程序。

ReactNative

react的扩展 ,位于移动开发上。

    • 其主要重点->全部与移动用户界面有关。
    • iOS和Android
    • 可重用,React Native UI 组件和模块,允许混合应用程序本地呈现。
    • 无需大修您的旧应用程序。您所要做的就是将React Native UI组件添加到现有应用的代码中,而无需重写。
    • 不使用HTML呈现应用程序。提供以类似方式工作的替代组件,因此理解它们并不难。
    • 因为您的代码未在HTML页面中呈现,这也意味着您将无法重用以前与ReactJS一起使用的可呈现任何类型的HTML,SVG或HTML的库画布。
    • React-Native不是由网络元素制成的,因此无法以相同的方式设置样式。 再见CSS动画

希望我对您有所帮助:)

答案 7 :(得分:12)

React是一个用于构建用户界面的声明性,高效且灵活的JavaScript库。您的组件告诉React您要呈现的内容 - 然后当数据发生更改时,React将有效地更新并呈现正确的组件。这里,ShoppingList是一个React组件类,或React组件类型。

React Native应用程序是一款真正的移动应用程序。使用React Native,您不需要构建“移动Web应用程序”,“HTML5应用程序”或“混合应用程序”。您构建了一个真正的移动应用程序,它与使用Objective-C或Java构建的应用程序无法区分。 React Native使用与常规iOS和Android应用程序相同的基本UI构建块。

More info

答案 8 :(得分:10)

React Native 主要是用JavaScript开发的,这意味着您需要启动的大部分代码都可以跨平台共享。 React Native将使用本机组件进行渲染。 React Native应用程序是以它所针对的平台所需的语言开发的,用于iOS的Objective-C或Swift,用于Android的Java等等。编写的代码不是跨平台共享的,它们的行为也各不相同。他们可以直接访问平台提供的所有功能,没有任何限制。

React 是由Facebook开发的用于构建用户界面的开源JavaScript库。它用于处理网络和移动应用的视图层。 ReactJS用于创建可重用的UI组件。它目前是it领域中最受欢迎的JavaScript库之一,它具有强大的基础和大型社区。如果你学习了ReactJS,你需要具备JavaScript,HTML5和CSS的知识。

答案 9 :(得分:10)

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

ReactNative是另一个层,旨在为Android和iOS平台提供常见的集合组件。所以代码看起来与ReactJS基本相同,因为它是ReactJS,但它在移动平台中本机加载。您还可以根据操作系统将更复杂的平台相关API与Jav​​a / Objective-C / Swift联系起来,并在React中使用它。

答案 10 :(得分:8)

React React Native React DOM 的基本抽象,因此如果您要使用React Native,您还需要React ...与网络相同,但不是React Native,而是需要React DOM。

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

答案 11 :(得分:8)

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

React-native提供默认的核心组件(图像,文本),其中React提供了大量组件并使它们协同工作。

答案 12 :(得分:8)

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

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

答案 13 :(得分:7)

关于组件生命周期和所有其他花里胡哨,它大致是相同的。

差异主要是使用的JSX标记。 React使用类似于html的一个。另一个是react-native用来显示视图的标记。

答案 14 :(得分:7)

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

答案 15 :(得分:7)

简单来说,除了设计用户界面外,React和React本机遵循相同的设计原则。

  1. React native有一组用于定义用户的标记 移动界面,但都使用JSX来定义组件。
  2. 两个系统的主要目的是开发可重用的UI组件,并通过其组合减少开发工作量。
  3. 如果你计划&amp;结构代码正确,您可以使用相同的业务逻辑移动和Web
  4. 无论如何,它是构建移动和网络用户界面的绝佳库。

答案 16 :(得分:4)

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

React Native 是一个 javascript框架,它带有编写多平台应用程序(如iOS或Android)所需的一切。您需要安装xcode和android studio来构建和部署您的应用程序。

与ReactJS不同,React-Native不使用HTML,但可以使用ios和android来构建应用程序的类似组件。这些组件使用真正的本机组件来构建ios和Android应用程序。由于这种React-Native应用程序与其他混合开发平台不同,因此感觉真实。组件还可以提高代码的可重用性,因为您不需要在ios和android上再次创建相同的用户界面。

答案 17 :(得分:4)

REACT是用于构建Facebook等大/小界面Web应用程序的Javascript库。

REACT NATIVE是用于在Android,IOS和Windows Phone上开发本机移动应用程序的Javascript框架。

两者都是Facebook开源的。

答案 18 :(得分:4)

我知道已经有很多答案了,但是阅读完所有这些之后,我相信这些仍然是可以解释的空间。

反应

反应= Vaila JS + ES6 + HTML + CSS = JSX

因此,让我们首先讨论 react ,因为 react-native 也是基于 react 的,并且在那里使用了相同的JS概念。< / p>

React是一个 JS 库,用于制作美丽,灵活,高效能 单页Web应用程序,因此现在将出现一个问题在您看来,单页网络应用

单页应用程序

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

工作方式

现在您知道什么是SPA,所以您就知道它是一个Web应用程序,因此它将使用HTML元素运行到浏览器中,还使用JS处理与这些元素相关的所有功能。 它使用 Virtual Dom 来呈现组件中的新更改。

本机

现在您对反应有了一些了解,所以让我们来谈谈反应本地

React-Native = React(Vaila JS + ES6 + JS与本机代码之间的桥梁)+本机(IOS,Android)

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

工作方式

在React-Native中有两个线程。

  1. JS线程

  2. 本地线程

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

React使用异步桥将数据以JSON格式传递到本机线程,称为react-native

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

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

|---------------------|------------------|---------------------|
|      Feature        |     React        |  React-Native       |
|---------------------|------------------|---------------------|
|    Platform         |        Web       |  Android, IOS, JS   |
|---------------------|------------------|---------------------|
|   Open Source       |        Yes       |        Yes          |
|---------------------|------------------|---------------------|
| Presentational View |   HTML + CSS     | Native Components   |
|---------------------|------------------|---------------------|
|  Arichtecure        |  Virtual Dom     | Virtual Dom + Bridge|
|---------------------|------------------|---------------------|
|   Animations        | CSS Animations   | Native Animations   | 
|---------------------|------------------|---------------------|
|     Styling         |     CSS          | JS Stylesheets      |
|---------------------|------------------|---------------------|
|  Developed By       |  Facebook        |      Facebook       |
|---------------------|------------------|---------------------|

答案 19 :(得分:4)

React Js正在使用HTML Dom。 但是React native正在使用移动(iOS / android)本机ui组件进行操作。

答案 20 :(得分:3)

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

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

反应+ react-dom =网络发展

反应+反应本地=移动发展

答案 21 :(得分:3)

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

答案 22 :(得分:3)

以下是我所知道的差异:

  1. 他们有不同的html标签:React Native用于处理文本而不是React。
  2. React Native使用的是Touchable组件而不是常规按钮 元件。
  3. React Native具有用于呈现列表的ScrollView和FlatList组件。
  4. 当React使用本地存储时,React Native正在使用AsyncStorage。
  5. 在React Native路由器中作为堆栈运行,而在React中,我们使用Route组件进行映射导航。

答案 23 :(得分:2)

  • React 通常称为React或ReactJS是一个JavaScript库,用于构建UI组件的层次结构,或者换句话说,负责UI组件的呈现。它提供了对前端和服务器端的支持。 React Native 是使用JavaScript构建本机应用程序的框架。 React Native会编译为本地应用程序组件,这使您可以构建本地移动应用程序。

  • React JS中,React是Web平台的React DOM的基本抽象,而使用 React Native ,React仍然是React Native的基本抽象。因此,语法和工作流程保持相似,但是组件不同。

  • 反应是为您的Web界面构建动态,高性能,响应式UI的理想选择,而反应原生旨在为您的移动应用带来真正的原生感觉。 / li>

答案 24 :(得分:2)

reactjs使用react-dom而不是浏览器dom,而react native使用虚拟dom,但是两者使用相同的语法,即如果可以使用reactjs,则可以使用react native。因为在reactjs中使用的大多数库都可用像您的react导航和它们具有的其他常见库一样,在react native中使用。

答案 25 :(得分:2)

一个简单的比较应该是

ReactJs

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

反应原生

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

React Native没有divph1等Html元素,而是具有对移动有意义的组件。
详情请访问https://reactnative.dev/docs/components-and-apis

答案 26 :(得分:2)

React Native 是一个 JavaScript框架,它包含编写多平台应用程序(例如iOS或Android)所需的一切。

ReactJS 是一个 JavaScript库,用于构建Web界面和构建您的网站。

答案 27 :(得分:2)

聚会晚了一点,但这是一个更全面的答案,并附有示例:

反应

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 data
        this.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'));

反应原生

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

博览会

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

  

Expo是通用React应用程序的框架和平台。它是围绕React Native和本机平台构建的一组工具和服务,可帮助您在iOS,Android和Web应用程序上开发,构建,部署和快速迭代

注意:使用Expo时,您只能使用它们提供的Native Api。您包括的所有其他库都必须是纯JavaScript或退出EXPO。

使用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 data
        this.setState({ data })
    }

    clearData = () => {
        this.setState({
            data: [],
        });
    }

    render() {
        return (
            <View style={styles.container}>
                <FlatList
                    data={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作为默认布局结构来保持响应。 / li>
  • 由于React Native中没有传统的“ DOM”,因此只能在React和React Native中使用纯JavaScript库。

React360

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

答案 28 :(得分:1)

反应原生homepage)是一个JavaScript框架,用于开发可在Android和iOS上同时运行的移动应用程序。它基于Facebook开发的ReactJS,这是用于开发Web用户界面(UI)的基于组件的声明式框架。 语法

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

反应是一个JavaScript库,用于构建用于Web开发的用户界面。它还允许我们创建可重用的UI组件。您可以在React JS中重用代码组件,从而节省大量时间。

语法

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

答案 29 :(得分:1)

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

实现上的区别是使用HTML标记的reactjs,但使用react-native特定组件的react-native。

答案 30 :(得分:1)

React本质上是Facebook拥有并开发的。它实际上是在2013年问世的。React是一个JS库,而不是一个框架。关于React的最值得注意的一点是它能够创建前端和后端。

React NATIVE仅仅是一个移动开发平台。在使用React Native之前,您需要了解Android的Java或iPhone和iPad的Objective-C才能创建本机React应用。简而言之,React是Webdev技术和React-Native是一种mobildev技术。

答案 31 :(得分:1)

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

答案 32 :(得分:1)

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

答案 33 :(得分:1)

React vs React Native

ReactJS

  • React用于创建网站,Web应用程序,SPA等。
  • React是用于创建UI层次结构的Javascript库。
  • 它负责呈现UI组件,被视为MVC框架的V部分。
  • React的虚拟DOM比传统的完全刷新模型要快,因为虚拟DOM仅刷新页面的一部分,从而减少了页面刷新时间。
  • React使用组件作为UI的基本单位,可以将其重用,从而节省了编码时间。 简单易学。

反应原生

  • React Native是用于创建跨平台本机应用程序的框架。这意味着您可以创建本机应用程序,并且同一应用程序将在Android和ios上运行。
  • React native具有ReactJS的所有优点
  • React native允许开发人员以网络样式的方式创建本地应用。
  • 前端开发人员可以轻松地成为移动开发人员。

答案 34 :(得分:1)

这是一个很好的解释:

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

React Native 是一个跨平台的移动框架,该框架使用Reactjs来构建应用程序和网站。通过将React Native编译为本机应用程序组件,程序员可以构建可在不同平台上运行的移动应用程序,例如Windows,Android和JavaScript中的iOS。

  • 对于Web平台,Reactjs可以描述为React DOM的基本派生,而React Native本身就是基本派生,这意味着语法和工作流程相同,但是组件有所不同。

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

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

  • 使用Reactjs开发的应用程序可在UI中呈现HTML,而React Native使用JSX呈现UI则不过是JavaScript。

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

  • 在Reactjs中,可以使用CSS进行动画处理,就像在React Native中进行Web开发一样,动画API用于在React Native应用程序的不同组件之间诱发动画。

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

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

答案 35 :(得分:1)

React Native只是React的产物,它可以使用JavaScript构建本机应用程序。通过使用与React相同的设计,它允许从声明性组件构建丰富的移动UI。它使用JavaScript和XML风格的标记(称为JSX)来开发移动应用程序界面。

使用React Native,可以为Android和iOS构建本地移动应用程序(类似于使用Java,Objective-C或Swift构建的移动应用程序)。使用此React框架,可以使用Javascript模仿本地应用程序的行为,并获取平台特定的代码作为输出。 React Native在移动应用程序开发中的一些显着优势包括:

用于多个平台的单一环境:React Native促进了跨平台本机应用程序的开发,即为一个平台编写的代码可以在另一平台上使用。在不影响外观的前提下,React Native使企业能够构建具有成本效益的移动应用程序,并使开发人员能够减轻创建新逻辑的负担,并为两个不同平台集成了不同的API。

使用本机代码组合React组件:开发人员可以通过将Objective-C,Java或Swift的组件与React本机代码相结合来优化应用程序的效率。在React Native中构建一部分应用程序组件,然后使用本机代码构建其中的一部分,然后将它们合并在一起很容易。

答案 36 :(得分:0)

React是用于使用JavaScript构建应用程序的框架。 React Native是一个完整的平台,允许您构建本机,跨平台的移动应用程序,而React.js是一个JavaScript库,用于构建高性能的UI层。 React.js是React Native的心脏,并且体现了所有React的原理和语法,因此学习起来很容易。该平台是引起他们技术差异的原因。就像React中的浏览器代码通过虚拟DOM呈现一样,而React Native使用Native API在移动设备上呈现组件。 React使用HTML,并且使用React Native,您需要熟悉React Native语法。 React Native也不使用CSS。这意味着您必须使用React Native随附的动画API来对应用程序的不同组件进行动画处理。

最重要的是,React是为您的Web界面构建动态,高性能,响应式UI的理想选择,而React Native则旨在为您的移动应用程序带来真正的本机感觉。

Reff:what-is-the-difference-between-react-js-and-react-native

答案 37 :(得分:0)

在Reactjs中,虚拟DOM用于在Reactjs中呈现浏览器代码,而在React Native中,本机API用于在移动设备中呈现组件。

使用Reactjs开发的应用程序可在UI中呈现HTML,而React Native使用JSX呈现UI则只是JavaScript。

答案 38 :(得分:0)

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

答案 39 :(得分:0)

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

答案 40 :(得分:0)

区别很简单。

<块引用>

我们使用 React 开发网络应用,使用 React Native 开发移动应用。

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

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

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

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

答案 41 :(得分:0)

React 和 React-native 之间的主要区别在于 React 带有基于 Web 的 UI 组件,而 React Native 带有与 Mobile 相关的 UI 小部件,其余几乎都相似。

答案 42 :(得分:0)

这是用于OS和android的应用程序开发的混合工具。您不必编写两次代码。 它使用本机组件以及react。 它还为您提供对服务器(firebase)的访问。 要获得更多帮助,请点击以下链接: https://reactnative.dev/ https://nativebase.io/

答案 43 :(得分:0)

Simple React Js适用于Web React Native适用于跨平台移动应用!

答案 44 :(得分:0)

React.js通常被称为React或ReactJS是一个JavaScript库,负责构建UI组件的层次结构,或者换句话说,负责UI组件的呈现。它同时支持前端和服务器端。

React Native是使用JavaScript构建本机应用程序的框架。 React Native会编译为本地应用程序组件,这使您可以构建本地移动应用程序。在React JS中,React是Web平台的React DOM的基础抽象,而对于React Native,React仍然是React Native的基础抽象。因此,语法和工作流程保持相似,但组件不同。

答案 45 :(得分:0)

一些区别如下:
1- React-Native是用于创建Mobile Apps的框架,其中ReactJS是可用于您的网站的JavaScript库。
2-当React使用时,React-Native不使用HTML呈现应用。
3- React-Native仅用于开发Mobile App,而React用于网站和Mobile。

答案 46 :(得分:0)

React Native is an entire platform allowing you to build native, cross-platform mobile apps, and React.js is a JavaScript library you use for constructing a high performing UI layer. ... Like the browser code in React is rendered through Virtual DOM while React Native uses Native API's to render components on mobile.

答案 47 :(得分:0)

为回应上面@poshest的评论,这是先前在React中发布的Clock代码的React Native版本(对不起,我无法直接在此部分发表评论,否则我会添加代码那里):

反应本地代码示例

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>标签。

答案 48 :(得分:0)

反应原生

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

  • 它可以编译为本机应用程序组件,这使您成为可能 来构建本机移动应用程序。

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

反应js

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

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

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

答案 49 :(得分:0)

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

  • 它遵循基于组件的方法,可帮助构建
    可重用的UI组件
    • 它用于开发复杂的交互式Web和移动UI
    • 即使仅在2015年开源,它还是支持它的最大社区之一。

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

答案 50 :(得分:0)

反应是使用JavaScript构建应用程序的框架。 React Native 是一个完整的平台,允许您构建本机,跨平台的移动应用程序,而 React.js 是一个JavaScript库,用于构建高性能的UI层。 React.js 是React Native的心脏,它体现了React的所有原理和语法,因此学习起来很容易。

该平台引起了他们的技术差异。就像 React 中的浏览器代码是通过虚拟DOM呈现的,而 React Native 使用本地API在移动设备上呈现组件一样。 React 使用HTML,并且使用 React Native ,您需要熟悉React Native语法。 React Native 也不使用CSS。这意味着您必须使用React Native随附的动画API为应用程序的不同组件制作动画。

最重要的是,反应是为您的Web界面构建动态,高性能,响应式UI的理想选择,而 React Native 旨在为您的移动应用提供真正的本机感觉。

答案 51 :(得分:-1)

让我们简短明了。

React 用于 Web 开发,React Native 用于应用程序开发。 差不多就是这样。瞧,简单的力量!