【问题标题】:What is the difference between React Native and React?React Native 和 React 有什么区别?
【发布时间】:2016-04-11 01:01:16
【问题描述】:

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

【问题讨论】:

  • 当大多数人问这个问题只是想知道他们是多么可互换时,每个人都在给出一个字典响应:将他们的 React 代码移植到 React Native 有多容易?如果您想在 iPad 上使用,您是否需要将 Web 应用程序的前端重写为不同的 React 代码?有何不同?
  • 简短的回答是 react-native 为 iOS、Android 和 Windows Mobile 构建移动应用程序,您可以编译并放入应用程序商店供用户安装。 Reactjs 用于构建用于 Web 浏览器的网页。两者都使用可重用的组件,但是用于渲染组件中元素的语法(使用 JSX)是不同的。 React JSX 渲染类似 html 的组件,如 <h1><p> 等。其中 react-native 渲染原生应用视图组件,如 <View><Text><Image><ScrollView>,所以不能直接重用你的 UI 组件代码,除非你返工/替换所有元素。
  • React 是一个用于开发 Web 应用程序前端的 Java 脚本库。React Native 用于基于移动的应用程序。

标签: javascript reactjs react-native javascript-framework


【解决方案1】:

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

React Native 是一个移动框架,它利用主机上可用的 JavaScript 引擎,允许您在 JavaScript 中为不同平台(iOS、Android 和 Windows Mobile)构建移动应用程序,允许您使用 ReactJS 构建可复用组件并与原生组件通信further explanation

两者都遵循 JavaScript 的 JSX 语法扩展。在后台编译为React.createElement 调用。 JSX in-depth

两者均由 Facebook 开源。

【讨论】:

  • 那么,如果我在 react native 中构建一个应用程序,是否可以在 reactJS 中重用任何/所有应用程序,反之亦然?
  • @MelAdane 发帖者可能指的是在 NodeJS 上使用 ReactJS 库来创建预构建文件(使用 Webpack 之类的东西),然后可以将其作为静态文件提供给客户端。跨度>
  • 如果我使用 react 构建 webapp,是否可以在使用 react native 的移动应用中使用相同的 HTML/JS 代码?
  • @RaviManiyar 不,您可以重用您的业务逻辑,但不能重用您的 ui 代码。 React Native 使用原生 ui 组件,而 React.JS 使用的是 web 并且 ui 是使用 html 组件和 css 构建的
  • React Native 将提供所有必需的工具来编写代码,就像您使用 React 一样。 React native 为您提供 Views 而不是 Divs 等。
【解决方案2】:

这里是React project

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

DOM 完全刷新比 React virtual-dom model 慢,后者只刷新页面的一部分(阅读:部分刷新)。

您可能从video 中了解到,Facebook 并没有发明 React,因为他们立即明白部分刷新会比传统刷新更快。最初,他们需要一种方法来减少 Facebook 应用程序的重新构建时间,幸运的是,这使部分 DOM 刷新成为现实。

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

React native 之前,您需要了解适用于 Android 的 Java 或适用于 iPhone 和 iPad 的 Objective-C 才能创建本地应用程序。

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

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

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

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

【讨论】:

  • 我个人更喜欢这个答案,因为它更详细,提供了进一步解释的链接。
  • 我也喜欢这个答案。 “在 React Native 之前……”别忘了还有 Xamarin。 ;)
  • @AspUpload 或颤动
【解决方案3】:

反应:

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

反应原生:

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

所以基本上 React 是用于 Web 应用视图的 UI 库,使用 javascriptJSXReact native 是 React 之上的一个额外库,用于为 iOSAndroid 设备制作本机应用程序。

React 代码示例:

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 网站:

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

【讨论】:

  • 您的代码示例很有用,但最好看到在每个框架中实现的 SAME 组件
  • 你的答案应该是被接受的,我来这里是想看看 React 和 React Native 是否具有相同的架构,以及代码看起来是否相同,而不是两个库的定义。
  • 我想补充一点,如果你是原生原生,你实际上只有两行代码,其中一行是为出口自动设置的(取决于)。是的,您需要一个日期格式化程序,但仍然只有一行。当它的代码行数比实际的原生应用程序多 20 倍时,我很难阅读“这就是为什么 react 很棒”。也就是说,我很欣赏你的回答,甚至喜欢 React on web,因为它在它擅长的领域提供了解决方案。我只是希望更多人知道如何在没有它的情况下实现它的模式,比较它何时有用与维护噩梦
【解决方案4】:

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

反应: Facebook 将这个框架设计为几乎就像在 HTML/XML 中编写 JavaScript 一样,这就是为什么这些标签被称为“JSX”(JavaScript XML)并且类似于熟悉的类似 HTML 的标签,例如如&lt;div&gt;&lt;p&gt;。 React 的一个标志是表示自定义组件的大写字母标签,例如&lt;MyFancyNavbar /&gt;,它也存在于 RN 中。然而,React 使用the DOM。 DOM 存在于 HTML,因此 React 用于 Web 开发。

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

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

【讨论】:

  • 将此答案置顶
【解决方案5】:

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,其中可以在 JavaScript 中使用用 iOS 的 ObjectiveC 和 Android 的 Java 编写的代码。

【讨论】:

    【解决方案6】:
    1. React-Native 是一个用于开发 Android 和 iOS 应用程序的框架,它共享 80% - 90% 的 Javascript 代码。

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

      1234563网络/移动开发。
    1. 对于 React.js,您需要 DOM 来渲染 html 标签的路径,而对于移动应用程序:React-Native 使用 AppRegistry 来注册您的应用程序。

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

    【讨论】:

    • React Native 使用了 React.js 的大部分内容。当它也直接用于 React Native 构建移动应用程序时,说它是“用于开发 Web 应用程序”是令人困惑的。许多 React Native 应用程序,尤其是较小的应用程序,可以使用 100% 共享的 JavaScript 代码,而无需任何特定于平台的代码。
    【解决方案7】:

    我们无法准确比较它们。 用例有所不同

    (2018 年更新)


    ReactJS

    React 主要关注 Web 开发。

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

    反应原生

    React 的扩展,专门用于移动开发。

      • 它的主要焦点是移动用户界面
      • iOS 和 Android 已涵盖。
      • 可重用 React Native UI 组件和模块允许混合应用原生呈现。
      • 无需大修旧应用程序。您所要做的就是将 React Native UI 组件添加到现有应用的代码中,而无需重写。
      • 不使用 HTML 来呈现应用程序。提供以类似方式工作的替代组件,因此不难理解。
      • 因为您的代码不会在 HTML 页面中呈现,这也意味着您将无法重用您之前与 React 一起使用的任何库来呈现任何类型的 HTML、SVG 或帆布。
      • React Native 不是由 Web 元素构成的,不能以相同的方式设置样式。 再见 CSS 动画!

    希望我能帮到你:)

    【讨论】:

      【解决方案8】:

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

      反应

      React = Vanilla JS + ES6 + HTML + CSS = JSX = Web 应用(前端)

      所以我们先来谈谈React,因为React-Native也是基于react,并且使用了同样的JS概念。

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

      单页应用程序

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

      工作原理

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

      反应原生

      现在您对 react 有了一些了解,那么让我们来谈谈 react-native

      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

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

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

      我们来说说这两个框架的共同点和不同点。

      Feature React React-Native
      Platform Web Android, iOS, Web
      Open Source Yes Yes
      User Interface HTML + CSS Native Components(iOS, Android, Web)
      Architecture Virtual DOM Virtual DOM + Bridge
      Animations CSS Animations Native Animations
      Styling CSS JS Stylesheets
      Developed By Facebook Facebook

      【讨论】:

      • 真正有见地的答案。谢谢!
      • 很高兴它对您有所帮助。
      • 这是一个不错的答案 +1
      • @snr 很高兴知道它对您有帮助。
      • 你应该更新你的答案better显示表格
      【解决方案9】:

      简单来说,React 和 React Native 遵循相同的设计原则,只是在设计用户界面的情况下。

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

      无论如何,它是为移动和网络构建用户界面的优秀库。

      【讨论】:

        【解决方案10】:

        React 是一个用于构建用户界面的声明式、高效且灵活的 JavaScript 库。您的组件告诉 React 您要呈现什么 - 然后 React 将在您的数据更改时有效地更新和呈现正确的组件。这里的 ShoppingList 是一个 React 组件类,或者 React 组件类型。

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

        More info

        【讨论】:

          【解决方案11】:

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

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

          【讨论】:

            【解决方案12】:

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

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

            【讨论】:

              【解决方案13】:

              ReactReact NativeReact DOM 的基础抽象,所以如果你要使用 React Native,你还需要 React ... 与 Web 相同,但您需要 React DOM 而不是 React Native。

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

              【讨论】:

                【解决方案14】:

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

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

                【讨论】:

                  【解决方案15】:

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

                  【讨论】:

                    【解决方案16】:

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

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

                    【讨论】:

                      【解决方案17】:

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

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

                      【讨论】:

                        【解决方案18】:

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

                        【讨论】:

                          【解决方案19】:

                          ReactJS 是一个 javascript 库,用于构建 Web 界面。你需要一个像 webpack 这样的打包工具,并尝试安装构建网站所需的模块。

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

                          与 ReactJS 不同,React-Native 不使用 HTML,而是使用类似的组件,您可以跨 ios 和 android 使用这些组件来构建您的应用程序。这些组件使用真正的原生组件来构建 ios 和 android 应用程序。因此,与其他混合开发平台不同,React-Native 应用程序感觉真实。组件还增加了代码的可重用性,因为您无需在 ios 和 android 上再次创建相同的用户界面。

                          【讨论】:

                            【解决方案20】:

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

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

                            react + react-dom = 网络开发

                            react + react-native = 移动开发

                            【讨论】:

                              【解决方案21】:

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

                              反应

                              React 是一个基于组件的 UI 库,它使用“shadow 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 作为默认布局结构来保持响应。
                              • 由于 React Native 中没有传统的“DOM”,因此只能在 React 和 React Native 之间使用纯 JavaScript 库

                              React360

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

                              【讨论】:

                                【解决方案22】:

                                ReactJS

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

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

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

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

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

                                  反应原生

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

                                • React Native 拥有 ReactJS 的所有优点

                                • React Native 允许开发者以 web 风格的方式创建原生应用。

                                【讨论】:

                                  【解决方案23】:

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

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

                                  两者均由 Facebook 开源。

                                  【讨论】:

                                    【解决方案24】:

                                    这是一个很好的解释:

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

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

                                    • Reactjs 可以被描述为 React DOM 的基础衍生品,用于 Web 平台,而 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,就像 Web 开发一样,而在 React Native 中,动画 API 用于在 React Native 应用程序的不同组件之间诱导动画。

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

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

                                    【讨论】:

                                      【解决方案25】:

                                      以下是我所知道的差异:

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

                                      【讨论】:

                                        【解决方案26】:

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

                                        【讨论】:

                                          【解决方案27】:

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

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

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

                                          【讨论】:

                                            【解决方案28】:

                                            简单的比较应该是

                                            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

                                            【讨论】:

                                              【解决方案29】:

                                              React Native 它 (homepage) 是一个 JavaScript 框架,用于开发可以在 Android 和 iOS 上本地运行的移动应用程序。它基于在 Facebook 开发的 ReactJS,这是一个用于开发 Web 用户界面 (UI) 的声明性、基于组件的框架。 语法

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

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

                                              语法

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

                                              【讨论】:

                                              • 不错的答案 biplov。
                                              【解决方案30】:

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

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

                                              【讨论】:

                                                猜你喜欢
                                                • 2017-01-03
                                                • 2019-06-21
                                                • 2019-04-27
                                                • 2019-05-09
                                                • 1970-01-01
                                                • 1970-01-01
                                                • 2021-10-27
                                                • 2019-03-06
                                                相关资源
                                                最近更新 更多