Was ist der Unterschied zwischen React Native und React?

730

Ich habe aus Neugier angefangen, React zu lernen und wollte den Unterschied zwischen React und React Native kennenlernen - konnte jedoch mit Google keine zufriedenstellende Antwort finden. React und React Native scheinen dasselbe Format zu haben. Haben sie eine völlig andere Syntax?

Shiva Kumar
quelle
61
Jeder gibt eine Wörterbuchantwort, wenn die meisten Leute, die diese Frage stellen, nur wissen möchten, wie austauschbar sie sind: Wie einfach ist es, ihren React-Code auf React Native zu portieren? Müssen Sie das Front-End Ihrer Web-App in einen anderen React-Code umschreiben, wenn Sie dies auf einem iPad möchten? Wie unterschiedlich?
Lawrence Weru
9
Was sind die Hauptunterschiede zwischen ReactJS und React-Native? Link hier medium.com/@alexmngn/…
core114
14
Die kurze Antwort lautet: React-Native erstellt mobile Apps für iOS, Android und Windows Mobile, die Sie kompilieren und in die App Stores stellen können, damit Benutzer sie installieren können. Reactjs dient zum Erstellen von Webseiten zur Verwendung in einem Webbrowser. Beide verwenden wiederverwendbare Komponenten, aber die Syntax, die Sie zum Rendern von Elementen in den Komponenten verwenden (unter Verwendung von JSX), ist unterschiedlich. Reagieren JSX macht HTML-ähnliche Komponenten wie <h1>, <p>usw. Wo reagieren-native macht native App Ansicht Komponenten wie <View>, <Text>, <Image>, <ScrollView>, so dass Sie nicht direkt Ihre UI - Komponente Code wiederverwenden können , wenn Sie alle Elemente überarbeiten / ersetzen.
Ira Herman

Antworten:

772

ReactJS ist eine JavaScript-Bibliothek, die sowohl das Front-End-Web als auch die Ausführung auf einem Server unterstützt, um Benutzeroberflächen und Webanwendungen zu erstellen.

React Native ist ein mobiles Framework, das zu nativen App-Komponenten kompiliert wird und es Ihnen ermöglicht, native mobile Anwendungen für verschiedene Plattformen (iOS, Android und Windows Mobile) in JavaScript zu erstellen, mit denen Sie ReactJS zum Erstellen Ihrer Komponenten verwenden und ReactJS unter dem implementieren können Kapuze.

Beide folgen der JSX-Syntaxerweiterung für JavaScript.

Beide sind Open-Source von Facebook.

Nader Dabit
quelle
3
@LemuelAdane Hier ist ein Bericht von Facebook darüber, wie dies gemacht wird: facebook.github.io/react/docs/environments.html . Hier ist ein nettes Intro, das beschreibt, wie dies implementiert wird: maketea.co.uk/2014/06/30/…
Nader Dabit
61
Wenn ich eine App in React Native erstelle, kann sie dann in ReactJS wiederverwendet werden oder umgekehrt?
Troy Cosentino
12
@MelAdane Das Poster bezieht sich wahrscheinlich auf die Verwendung von ReactJS-Bibliotheken auf einem NodeJS, um vorgefertigte Dateien (mit etwas wie Webpack) zu erstellen, die dem Client dann als statische Dateien bereitgestellt werden können.
Pineda
9
Wenn ich eine Webanwendung mit "Reagieren" erstelle, kann derselbe HTML / JS-Code in einer mobilen App mit "Reagieren" verwendet werden?
Ravi Maniyar
14
@ RaviManiyar NEIN, Sie können Ihre Geschäftslogik wiederverwenden, aber Sie können Ihre UI-Codes nicht wiederverwenden. React Native verwendet native UI-Komponenten, während React.JS für das Web verwendet wird und die UI mit HTML-Komponenten und CSS erstellt wird
Chromonav
292

Hier ist das React- Projekt .

Bei Facebook haben sie React erfunden damit JavaScript das Website-DOM mithilfe des virtuellen DOM-Modells schneller bearbeiten kann.

Die vollständige DOM-Aktualisierung ist langsamer als das React Virtual-Dom-Modell , bei dem nur Teile der Seite aktualisiert werden (sprich: teilweise Aktualisierung).

Wie Sie vielleicht aus diesem Video verstehen , hat Facebook React nicht erfunden, da sofort verstanden wurde, dass die teilweise Aktualisierung schneller sein würde als die herkömmliche. Ursprünglich brauchten sie eine Möglichkeit, die Wiederherstellungszeit für Facebook-Anwendungen zu verkürzen, und glücklicherweise erweckte dies die teilweise DOM-Aktualisierung zum Leben.

React native ist nur eine Folge von React. Es ist eine Plattform zum Erstellen nativer Apps mit JavaScript.

Vor React native mussten Sie Java für Android oder Objective-C für iPhone und iPad kennen, um native Apps erstellen zu können.

Mit React Native ist es möglich, das Verhalten der nativen App in JavaScript nachzuahmen, und am Ende erhalten Sie plattformspezifischen Code als Ausgabe. Sie können sogar den nativen Code mischen mit dem JavaScript wenn Sie Ihre Anwendung weiter optimieren müssen.

Wie Olivia Bishop im Video sagte , können 85% der nativen React- Codebasis von Plattformen gemeinsam genutzt werden. Dies sind die Komponenten, die Anwendungen normalerweise verwenden, und die gemeinsame Logik.

15% des Codes sind plattformspezifisch. Das plattformspezifische JavaScript verleiht der Plattform Geschmack (und macht den Unterschied in der Erfahrung).

Das Coole ist, dass dieser plattformspezifische Code bereits geschrieben ist und Sie ihn nur verwenden müssen.

Prosti
quelle
9
Ich persönlich mag diese Antwort mehr, da sie detaillierter ist und Links zu weiteren Erklärungen bietet.
Cristi Potlog
7
Ich mag diese Antwort auch. "Vor React Native ..." Vergiss nicht, dass es auch Xamarin gibt. ;)
Asp Upload
117

Reagieren:

React ist eine deklarative, effiziente und flexible JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen.

Native reagieren:

Mit React Native können Sie mobile Apps nur mit JavaScript erstellen. Es verwendet das gleiche Design wie React, sodass Sie aus deklarativen Komponenten eine umfangreiche mobile Benutzeroberfläche erstellen können.
Mit React Native erstellen Sie keine „mobile Web-App“, „HTML5-App“ oder „Hybrid-App“. Sie erstellen eine echte mobile App, die sich nicht von einer App unterscheidet, die mit Objective-C oder Java erstellt wurde. React Native verwendet dieselben grundlegenden UI-Bausteine ​​wie normale iOS- und Android-Apps. Sie setzen diese Bausteine ​​einfach mit JavaScript und React zusammen.
Mit React Native können Sie Ihre App schneller erstellen. Anstatt neu zu kompilieren, können Sie Ihre App sofort neu laden. Beim Hot-Reloading können Sie sogar neuen Code ausführen, während Sie Ihren Anwendungsstatus beibehalten. Probieren Sie es aus - es ist eine magische Erfahrung.
React Native lässt sich problemlos mit Komponenten kombinieren, die in Objective-C, Java oder Swift geschrieben sind. Es ist einfach, auf nativen Code zurückzugreifen, wenn Sie einige Aspekte Ihrer Anwendung optimieren müssen. Es ist auch einfach, einen Teil Ihrer App in React Native und einen Teil Ihrer App direkt mit nativem Code zu erstellen - so funktioniert die Facebook-App.

React ist also im Grunde eine UI-Bibliothek für die Ansicht Ihrer Webanwendung, die Javascript und JSX verwendet . React native ist eine zusätzliche Bibliothek über React, um eine native App für iOSund AndroidGeräte zu erstellen.

Reagieren Sie Codebeispiel:

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


Native Codebeispiel reagieren:

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

Weitere Informationen zu React finden Sie auf der offiziellen Website des Facebook-Teams:

https://facebook.github.io/react

Weitere Informationen zu React Native finden Sie auf der folgenden Website von React Native :

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

Alireza
quelle
40
Ihre Codebeispiele sind nützlich, aber es wäre SO viel besser zu sehen, wie die gleiche Komponente in jedem Framework implementiert wird
vornehmster
8
Ihre Antwort sollte die akzeptierte sein. Ich bin hierher gekommen, um zu sehen, ob React und React Native dieselbe Architektur haben und ob der Code nicht für die Definitionen beider Bibliotheken gleich aussieht.
Gherbi Hicham
1
Ich möchte hinzufügen, dass Sie, wenn Sie roh native wären, buchstäblich nur zwei Codezeilen hätten, von denen eine automatisch für die Steckdose eingerichtet wird (abhängig). Ja, Sie benötigen einen Datumsformatierer, aber immer noch nur eine Zeile. Es fällt mir schwer, "Deshalb ist Reagieren großartig" zu lesen, wenn es buchstäblich 20 Mal mehr Codezeilen enthält als tatsächliche native Apps. Trotzdem schätze ich Ihre Antwort sehr und genieße es sogar, im Web für die Lösungen zu reagieren, die es in der Domäne bietet, in der es großartig ist. Ich wünschte nur, mehr Leute wüssten, wie man seine Muster ohne sie implementiert, um zu vergleichen, wann sie nützlich sind, und um Wartungs-Albträume
Stephen J
58

ReactJS ist ein Framework zum Erstellen einer Hierarchie von UI-Komponenten. Jede Komponente hat Status und Requisiten. Der Datenfluss erfolgt über Requisiten von oben zu Komponenten auf niedriger Ebene. Der Status wird in der Komponente der obersten Ebene mithilfe von Ereignishandlern aktualisiert.

React native verwendet das React Framework zum Erstellen von Komponenten für mobile Apps. React native bietet einen grundlegenden Satz von Komponenten für iOS- und Android-Plattformen. Einige der Komponenten in React Native sind Navigator, TabBar, Text, TextInput, View, ScrollView. Diese Komponenten verwenden intern native iOS UIKit- und Android UI-Komponenten. React native ermöglicht auch NativeModules, bei denen in ObjectiveC für iOS und Java für Android geschriebener Code in JavaScript verwendet werden kann.

vijayst
quelle
41

Zunächst die Ähnlichkeiten: Sowohl React als auch React Native (RN) wurden entwickelt, um flexible Benutzeroberflächen zu erstellen. Diese Frameworks bieten unzählige Vorteile, aber das grundlegendste Problem ist, dass sie für die Entwicklung der Benutzeroberfläche entwickelt wurden. Facebook entwickelte RN einige Jahre nach React.

Reagieren: Facebook hat dieses Framework so gestaltet, dass es fast so ist, als würde man JavaScript in HTML / XML schreiben. Deshalb heißen die Tags " JSX " (JavaScript XML) und ähneln den bekannten HTML-ähnlichen Tags wie <div>oder <p>. Ein Kennzeichen von React sind die Großbuchstaben-Tags, die eine benutzerdefinierte Komponente kennzeichnen, wie sie <MyFancyNavbar />auch in RN vorhanden ist. React verwendet jedoch das DOM . Das DOM existiert für HTML, daher wird React für die Webentwicklung verwendet.

React Native: RN verwendet kein HTML und wird daher nicht für die Webentwicklung verwendet. Es wird für ... praktisch alles andere verwendet! Mobile Entwicklung (sowohl iOS als auch Android), Smart-Geräte (z. B. Uhren, Fernseher), Augmented Reality usw. Da RN kein DOM zur Interaktion hat, anstatt die gleichen HTML-Tags zu verwenden, die in React verwendet werden, werden eigene verwendet Tags, die dann in andere Sprachen kompiliert werden. Beispielsweise verwenden <div>RN-Entwickler anstelle von Tags das integrierte <View>Tag von RN , das unter der Haube in anderen nativen Code kompiliert wird (z. B. android.viewunter Android und UIViewiOS).

Kurz gesagt: Sie sind sehr ähnlich (für die UI-Entwicklung), werden jedoch für verschiedene Medien verwendet.

Ryo-Code
quelle
Gute Antwort. Kannst du etwas mehr ausarbeiten und mehr Punkte hinzufügen? Es wäre schön für die Leute, die lesen.
Sarath
1
Setzen Sie
38
  1. React-Native ist ein Framework für die Entwicklung von Android- und iOS-Anwendungen, das 80% - 90% des Javascript-Codes gemeinsam nutzt.

Während React.js eine übergeordnete Javascript-Bibliothek für die Entwicklung von Webanwendungen ist.

  1. Während Sie in React-Native sehr häufig Tags wie verwenden <View>, <Text>verwendet React.js Web-HTML-Tags wie <div> <h1> <h2>, die nur Synonyme im Wörterbuch der Web- / Mobilentwicklungen sind.

  2. Für React.js benötigen Sie DOM für das Rendern von HTML-Tags im Pfad, während für mobile Anwendungen: React-Native verwendet AppRegistry, um Ihre App zu registrieren.

Ich hoffe, dies ist eine einfache Erklärung für schnelle Unterschiede / Ähnlichkeiten in React.js und React-Native.

Анураг Пракаш
quelle
25

Wir können sie nicht genau vergleichen. Es gibt Unterschiede im Anwendungsfall .

(Update 2018)


ReactJS

React hat den Schwerpunkt Web Development.

    • Das virtuelle DOM von React ist schneller als das herkömmliche Modell der vollständigen Aktualisierung , da das virtuelle DOM nur Teile der Seite aktualisiert.
    • Sie können Codekomponenten in React wiederverwenden , wodurch Sie viel Zeit sparen. (Sie können auch in React Native.)
    • Als Unternehmen: Durch das vollständige Rendern Ihrer Seiten vom Server zum Browser wird die SEO Ihrer Web-App verbessert .
    • Es verbessert die Debugging-Geschwindigkeit und erleichtert Ihrem Entwickler das Leben.
    • Sie können die Entwicklung hybrider mobiler Apps wie Cordova oder Ionic verwenden, um mobile Apps mit React zu erstellen, aber Sie können mobile Apps mit React Native in vielerlei Hinsicht effizienter erstellen.

Native reagieren

Eine Erweiterung von React , die sich mit Mobile Development befasst.

    • Das Hauptaugenmerk liegt auf mobilen Benutzeroberflächen .
    • iOS & Android sind abgedeckt.
    • Wiederverwendbare reaktive native UI- Komponenten und -Module ermöglichen das native Rendern von Hybrid-Apps.
    • Sie müssen Ihre alte App nicht überarbeiten. Alles, was Sie tun müssen, ist , React Native UI-Komponenten zum Code Ihrer vorhandenen App hinzuzufügen , ohne sie neu schreiben zu müssen.
    • Verwendet kein HTML zum Rendern der App . Bietet alternative Komponenten, die auf ähnliche Weise funktionieren, sodass es nicht schwer ist, sie zu verstehen.
    • Da Ihr Code nicht in einer HTML-Seite gerendert wird, bedeutet dies auch Sie wird, können Sie auch keine Bibliotheken wiederverwenden, die Sie zuvor mit React verwendet haben und die HTML, SVG oder Canvas rendern.
    • React Native besteht nicht aus Webelementen und kann nicht auf die gleiche Weise gestaltet werden. Auf Wiedersehen CSS-Animationen!

Hoffentlich habe ich dir geholfen :)

Adrian Gheorghe
quelle
17

In einem einfachen Sinne folgen React und React native denselben Entwurfsprinzipien, außer im Fall des Entwurfs einer Benutzeroberfläche.

  1. React native verfügt über einen separaten Satz von Tags zum Definieren der Benutzeroberfläche für Mobilgeräte. Beide verwenden jedoch JSX zum Definieren von Komponenten.
  2. Die Hauptabsicht beider Systeme besteht darin, wiederverwendbare UI-Komponenten zu entwickeln und den Entwicklungsaufwand durch ihre Zusammensetzung zu reduzieren.
  3. Wenn Sie Code richtig planen und strukturieren, können Sie dieselbe Geschäftslogik für Mobile und Web verwenden

Auf jeden Fall ist es eine hervorragende Bibliothek, um eine Benutzeroberfläche für Mobilgeräte und das Internet zu erstellen.

Manzoor Samad
quelle
16

React ist eine deklarative, effiziente und flexible JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen. Ihre Komponenten teilen React mit, was Sie rendern möchten. React aktualisiert und rendert dann genau die richtigen Komponenten, wenn sich Ihre Daten ändern. Hier ist ShoppingList eine React-Komponentenklasse oder ein React-Komponententyp.

Eine React Native App ist eine echte mobile App. Mit React Native erstellen Sie keine „mobile Web-App“, „HTML5-App“ oder „Hybrid-App“. Sie erstellen eine echte mobile App, die sich nicht von einer App unterscheidet, die mit Objective-C oder Java erstellt wurde. React Native verwendet dieselben grundlegenden UI-Bausteine ​​wie normale iOS- und Android-Apps.

Mehr Info

Bipon Biswas
quelle
13

ReactJS ist ein Kernframework, das dazu gedacht ist, Komponenten zu erstellen, die auf reaktiven Mustern isoliert sind. Sie können es sich als das V von MVC vorstellen, obwohl ich sagen möchte, dass React ein anderes Gefühl vermittelt, insbesondere wenn Sie mit dem reaktiven Konzept weniger vertraut sind .

ReactNative ist eine weitere Ebene, die eine festgelegte Komponente für Android- und iOS-Plattformen enthalten soll. Der Code sieht also im Grunde genauso aus wie ReactJS, da es sich um ReactJS handelt, wird jedoch nativ auf mobilen Plattformen geladen. Sie können auch komplexere und plattformbezogene APIs je nach Betriebssystem mit Java / Objective-C / Swift überbrücken und in React verwenden.

Necronet
quelle
13

Native reagieren hauptsächlich in JavaScript entwickelt. Dies bedeutet, dass der größte Teil des Codes, den Sie für den Start benötigen, plattformübergreifend gemeinsam genutzt werden kann. React Native wird mit nativen Komponenten gerendert. React Native-Apps werden in der Sprache entwickelt, die von der Plattform, auf die sie abzielen, Objective-C oder Swift für iOS, Java für Android usw. benötigt wird. Der geschriebene Code wird nicht plattformübergreifend geteilt und ihr Verhalten variiert. Sie haben uneingeschränkten direkten Zugriff auf alle von der Plattform angebotenen Funktionen.

React ist eine Open-Source-JavaScript-Bibliothek, die von Facebook zum Erstellen von Benutzeroberflächen entwickelt wurde. Es wird für die Verarbeitung der Ansichtsebene für Web- und mobile Apps verwendet. ReactJS wurde zum Erstellen wiederverwendbarer UI-Komponenten verwendet. Es ist derzeit eine der beliebtesten JavaScript-Bibliotheken im IT-Bereich und verfügt über eine starke Grundlage und eine große Community. Wenn Sie ReactJS lernen, müssen Sie über Kenntnisse in JavaScript, HTML5 und CSS verfügen.

Ramya Ram
quelle
12

React ist die Basisabstraktion von React Native und React DOM . Wenn Sie also mit React Native arbeiten möchten, benötigen Sie auch React ... wie im Web, aber anstelle von React Native benötigen Sie React DOM.

Da React die Basisabstraktion ist, sind die allgemeine Syntax und der Workflow gleich, aber die Komponenten, die Sie verwenden würden, sind sehr unterschiedlich. Sie müssen also diese Unterschiede lernen. Dies steht im Einklang mit React, dem so genannten Moto, das "Einmal schreiben, irgendwo schreiben" lautet, denn wenn Sie wissen, dass Sie mit React (Basisabstraktion) einfach die Unterschiede zwischen Plattformen lernen können, ohne eine andere Programmiersprache, Syntax und einen anderen Workflow zu lernen.

Sharlon M. Balbalosa
quelle
11

React-Native ist ein Framework, in dem ReactJS eine Javascript-Bibliothek ist, die Sie für Ihre Website verwenden können.

React-native bietet Standardkernkomponenten (Bilder, Text), wobei React eine Reihe von Komponenten bereitstellt und diese zusammenarbeiten lässt.

iPragmatech
quelle
10

React Js ist eine Javascript-Bibliothek, in der Sie mit React schnellere Webanwendungen entwickeln und ausführen können.

Mit React Native können Sie mobile Apps nur mit JavaScript erstellen. Es wird für die Entwicklung mobiler Anwendungen verwendet. Weitere Informationen hier https://facebook.github.io/react-native/docs/getting-started.html

Nischith
quelle
9

In Bezug auf den Komponentenlebenszyklus und alle anderen Schnickschnack ist es meistens dasselbe.

Der Unterschied besteht hauptsächlich im verwendeten JSX-Markup. React verwendet eine, die HTML ähnelt. Das andere ist das Markup, das von React-Native zum Anzeigen der Ansicht verwendet wird.

Scott Blanch
quelle
8

React Native ist für mobile Anwendungen vorgesehen, während React für Websites (Front-End) vorgesehen ist. Beides sind von Facebook erfundene Frameworks. React Native ist ein plattformübergreifendes Entwicklungsframework, dh man könnte fast den gleichen Code für IOS und Android schreiben und es würde funktionieren. Ich persönlich weiß viel mehr über React Native, also werde ich es dabei belassen.

S. Sinha
quelle
8

React Js manipuliert mit HTML Dom. Aber React native manipuliert mit der nativen UI-Komponente für Mobilgeräte (iOS / Android).

Uzama Zaid
quelle
7

ReactJS ist eine Javascript-Bibliothek, mit der Webschnittstellen erstellt werden. Sie benötigen einen Bundler wie das Webpack und versuchen, Module zu installieren, die Sie zum Erstellen Ihrer Website benötigen.

React Native ist ein Javascript-Framework und enthält alles, was Sie zum Schreiben plattformübergreifender Apps (wie iOS oder Android) benötigen. Sie müssten xcode und android studio installiert haben, um Ihre App zu erstellen und bereitzustellen.

Im Gegensatz zu ReactJS verwendet React-Native kein HTML, sondern ähnliche Komponenten, die Sie für iOS und Android verwenden können, um Ihre App zu erstellen. Diese Komponenten verwenden echte native Komponenten, um die iOS- und Android-Apps zu erstellen. Aufgrund dessen fühlen sich React-Native-Apps im Gegensatz zu anderen Hybrid-Entwicklungsplattformen echt an. Komponenten erhöhen auch die Wiederverwendbarkeit Ihres Codes, da Sie auf ios und android nicht dieselbe Benutzeroberfläche erneut erstellen müssen.

Ashish Pisey
quelle
6

In einfachen Worten ist ReactJS eine übergeordnete Bibliothek, die etwas zurückgibt, das gemäß der Host-Umgebung (Browser, Handy, Server, Desktop usw.) gerendert werden kann. Neben dem Rendern bietet es auch andere Methoden wie Lifecycle Hooks usw.

Im Browser wird eine andere Bibliothek verwendet, um DOM-Elemente zu rendern. In Mobilgeräten werden React-Native-Komponenten verwendet, um plattformspezifische (sowohl IOS als auch Android) native UI-Komponenten zu rendern. DAMIT,

reagieren + reagieren-dom = Webentwicklung

reagieren + reagieren-native = mobile Entwicklung

Rajender Dandyal
quelle
4

REACT ist eine Javascript-Bibliothek zum Erstellen von Webanwendungen mit großer / kleiner Benutzeroberfläche wie Facebook.

REACT NATIVE ist ein Javascript-Framework zur Entwicklung nativer mobiler Anwendungen unter Android, IOS und Windows Phone.

Beide sind Open Source von Facebook.

Daniel Agus Sidabutar
quelle
3

Hier sind die Unterschiede, die ich kenne:

  1. Sie haben unterschiedliche HTML-Tags: React Native wird zum Behandeln von Text und nicht in React verwendet.
  2. React Native verwendet berührbare Komponenten anstelle eines normalen Schaltflächenelements.
  3. React Native verfügt über ScrollView- und FlatList-Komponenten zum Rendern von Listen.
  4. React Native verwendet AsyncStorage, während React lokalen Speicher verwendet.
  5. In React Native fungieren Router als Stapel, während in React Routenkomponenten für die Zuordnungsnavigation verwendet werden.
Staubig
quelle
3

Zusammenfassend: React.js für die Webentwicklung und React-Native für die Entwicklung mobiler Apps

Albert A.
quelle
3

Reagieren gegen Reagieren Native

ReactJS

  • React wird zum Erstellen von Websites, Web-Apps, SPAs usw. verwendet.
  • React ist eine Javascript-Bibliothek, die zum Erstellen der UI-Hierarchie verwendet wird.
  • Es ist für das Rendern von UI-Komponenten verantwortlich. Es wird als V-Teil des MVC-Frameworks betrachtet.
  • Das virtuelle DOM von React ist schneller als das herkömmliche Modell der vollständigen Aktualisierung, da das virtuelle DOM nur Teile der Seite aktualisiert, wodurch die Aktualisierungszeit der Seite verkürzt wird.
  • React verwendet Komponenten als Grundeinheit der Benutzeroberfläche, die wiederverwendet werden können. Dies spart Codierungszeit. Einfach und leicht zu lernen.

Native reagieren

  • React Native ist ein Framework, mit dem plattformübergreifende native Apps erstellt werden. Dies bedeutet, dass Sie native Apps erstellen können und dieselbe App auf Android und iOS ausgeführt wird.
  • React native bietet alle Vorteile von ReactJS
  • Mit React native können Entwickler native Apps im Webstil erstellen.
  • Front-End-Entwickler können leicht zu mobilen Entwicklern werden.
GOVINDARAJ
quelle
2

React Js - React JS ist eine Front-End-Javascript-Bibliothek. Die große Bibliothek ist kein Framework

  • Es folgt dem komponentenbasierten Ansatz, der beim Erstellen
    wiederverwendbarer UI-Komponenten hilft
    • Es wird zur Entwicklung komplexer und interaktiver Web- und mobiler Benutzeroberflächen verwendet
    • Obwohl es erst 2015 Open-Source war, wird es von einer der größten Gemeinden unterstützt.

ReactNative - React Native ist ein Open-Source-Framework für mobile Anwendungen.

Pankaj Gadhiya
quelle
2

Ein bisschen spät zur Party, aber hier ist eine umfassendere Antwort mit Beispielen:

Reagieren

React ist eine komponentenbasierte UI-Bibliothek, die ein "Schatten-DOM" verwendet, um das DOM effizient mit den Änderungen zu aktualisieren, anstatt den gesamten DOM-Baum für jede Änderung neu zu erstellen. Es wurde ursprünglich für Web-Apps entwickelt, kann jetzt aber auch für Mobilgeräte und 3D / VR verwendet werden.

Komponenten zwischen React und React Native können nicht ausgetauscht werden, da React Native nativen Elementen der mobilen Benutzeroberfläche zugeordnet ist, Geschäftslogik und nicht mit dem Rendering verbundener Code jedoch wiederverwendet werden können.

ReactDOM

War ursprünglich in der React-Bibliothek enthalten, wurde jedoch aufgeteilt, sobald React für andere Plattformen als nur das Web verwendet wurde. Es dient als Einstiegspunkt in das DOM und wird in Verbindung mit React verwendet.

Beispiel:

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

Native reagieren

React Native ist ein plattformübergreifendes mobiles Framework, das React verwendet und über eine "Brücke" zwischen Javascript und seinem nativen Gegenstück kommuniziert. Aus diesem Grund muss die Strukturierung der Benutzeroberfläche bei Verwendung von React Native unterschiedlich sein. Beispiel: Wenn Sie eine Liste maperstellen, treten erhebliche Leistungsprobleme auf, wenn Sie versuchen , die Liste anstelle der von React Native zu erstellen FlatList. React Native kann zum Erstellen von IOS / Android-Apps für Mobilgeräte sowie für Smartwatches und Fernseher verwendet werden.

Messe

Die Expo ist die erste Adresse, wenn Sie eine neue React Native-App starten.

Die Expo ist ein Framework und eine Plattform für universelle React-Anwendungen. Es handelt sich um eine Reihe von Tools und Diensten, die auf React Native und nativen Plattformen basieren und Ihnen helfen, iOS-, Android- und Web-Apps zu entwickeln, zu erstellen, bereitzustellen und schnell zu iterieren

Hinweis: Wenn Sie Expo verwenden, können Sie nur die von ihnen bereitgestellten nativen APIs verwenden. Alle zusätzlichen Bibliotheken, die Sie einschließen, müssen aus reinem Javascript bestehen, oder Sie müssen expo auswerfen.

Gleiches Beispiel mit 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,
    },
});

Unterschiede:

  • Beachten Sie, dass alles außerhalb des Renderns gleich bleiben kann. Aus diesem Grund kann der Code für Geschäftslogik / Lebenszykluslogik in React und React Native wiederverwendet werden
  • In React Native müssen alle Komponenten aus React-Native oder einer anderen UI-Bibliothek importiert werden
  • Die Verwendung bestimmter APIs, die nativen Komponenten zugeordnet sind, ist normalerweise leistungsfähiger als der Versuch, alles auf der Javascript-Seite zu handhaben. Ex. Zuordnen von Komponenten zum Erstellen einer Liste im Vergleich zur Verwendung von Flatlist
  • Subtile Unterschiede: Dinge wie onClickverwandeln sich inonPress , Reaktion india Anwendungen Sheets Stile in einer leistungsfähigere Weise zu definieren, und Reagieren india Verwendungen Flexbox als Standard - Layout - Struktur zu halten Dinge anspricht.
  • Da es in React Native kein traditionelles "DOM" gibt, können sowohl in React als auch in React Native nur reine Javascript-Bibliotheken verwendet werden

React360

Erwähnenswert ist auch, dass React auch zur Entwicklung von 3D / VR-Anwendungen verwendet werden kann. Die Komponentenstruktur ist React Native sehr ähnlich. https://facebook.github.io/react-360/

Matt achtern
quelle
1

Reactjs verwendet einen React-Dom, nicht den Browser-Dom, während React Native Virtual Dom verwendet. Die beiden verwenden jedoch dieselbe Syntax. Wenn Sie Reactjs verwenden können, können Sie React Native verwenden, da die meisten Bibliotheken, die Sie in Reactjs verwenden, in React Native verfügbar sind wie Ihre Reaktionsnavigation und andere gemeinsame Bibliotheken, die sie gemeinsam haben.

Solex
quelle
Die kurze Antwort lautet: React-Native erstellt mobile Apps für iOS, Android und Windows Mobile, die Sie kompilieren und in die App Stores stellen können, damit Benutzer sie installieren können. Reactjs dient zum Erstellen von Webseiten zur Verwendung in einem Webbrowser. Beide verwenden wiederverwendbare Komponenten, aber die Syntax, die Sie zum Rendern von Elementen in den Komponenten verwenden (unter Verwendung von JSX), ist unterschiedlich. Reagieren JSX macht HTML-ähnliche Komponenten wie <h1>, <p>usw. Wo reagieren-native nativen Komponenten App Ansicht rendert wie <View>und <Text>.
Ira Herman
1

Als Antwort auf den Kommentar von @poshest oben ist hier eine React Native-Version des zuvor in React veröffentlichten Clock-Codes (leider konnte ich den Abschnitt nicht direkt kommentieren, sonst hätte ich den Code dort hinzugefügt):

Native Codebeispiel reagieren

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

Beachten Sie, dass das Styling ganz meine Wahl ist und nicht versucht, die im React-Code verwendeten <h1>und- <h2>Tags direkt zu replizieren .

Martin N.
quelle
1

Einige Unterschiede sind folgende:
1- React-Native ist ein Framework, das zum Erstellen von mobilen Apps verwendet wird, wobei ReactJS eine Javascript-Bibliothek ist, die Sie für Ihre Website verwenden können.
2- React-Native verwendet kein HTML, um die App zu rendern, während React verwendet.
3- React-Native wird nur für die Entwicklung von Mobile Apps verwendet, während React für Websites und Mobilgeräte verwendet wird.

Naveen
quelle
0

Native reagieren

  • Es ist ein Framework zum Erstellen nativer Anwendungen mit JavaScript.

  • Es wird zu nativen App-Komponenten kompiliert, sodass Sie native mobile Anwendungen erstellen können.

  • Sie müssen Ihre alte App nicht überarbeiten. Alles, was Sie tun müssen, ist, React Native UI-Komponenten zum Code Ihrer vorhandenen App hinzuzufügen, ohne sie neu schreiben zu müssen.

Reagiere js

  • Es unterstützt sowohl das Front-End-Web als auch die Ausführung auf einem Server, um Benutzeroberflächen und Webanwendungen zu erstellen.

  • Außerdem können wir wiederverwendbare UI-Komponenten erstellen.

  • Sie können Codekomponenten in React JS wiederverwenden, wodurch Sie viel Zeit sparen.

Herzhacker
quelle
0

React.js, oft als React oder ReactJS bezeichnet, ist eine JavaScript-Bibliothek, die für die Erstellung einer Hierarchie von UI-Komponenten oder mit anderen Worten für das Rendern von UI-Komponenten verantwortlich ist. Es bietet Unterstützung sowohl für das Frontend als auch für den Server.

React Native ist ein Framework zum Erstellen nativer Anwendungen mit JavaScript. React Native kompiliert mit nativen App-Komponenten, sodass Sie native mobile Anwendungen erstellen können. In React JS ist React die Basisabstraktion von React DOM für die Webplattform, während React mit React Native immer noch die Basisabstraktion von React Native ist. Die Syntax und der Workflow bleiben also ähnlich, aber die Komponenten sind unterschiedlich.

Prakash Sharma
quelle