Qual è la differenza tra React Native e React?


730

Ho iniziato a imparare React per curiosità e volevo conoscere la differenza tra React e React Native, anche se non sono riuscito a trovare una risposta soddisfacente usando Google. React and React Native sembra avere lo stesso formato. Hanno una sintassi completamente diversa?


61
Ognuno sta dando una risposta dal dizionario quando la maggior parte delle persone vuole solo sapere quanto sono intercambiabili: quanto è facile portare il proprio codice React su React Native? Dovrai riscrivere il front-end della tua app Web in un altro codice React se lo desideri su un iPad? Come è diverso?
Lawrence Weru,

9
Quali sono le principali differenze tra ReactJS e React-Native? link qui medium.com/@alexmngn/…
core114

14
La risposta breve è che Rea-native crea app mobili per iOS, Android e Windows Mobile che è possibile compilare e inserire negli app store affinché gli utenti possano installarle. Reactjs è per la creazione di pagine Web da utilizzare in un browser Web. Entrambi utilizzano componenti riutilizzabili, ma la sintassi utilizzata per il rendering degli elementi nei componenti (utilizzando JSX) è diversa. Reagire JSX rende HTML-come componenti come <h1>, <p>ecc Dove reagiscono nativo rende nativi vista app componenti come <View>, <Text>, <Image>, <ScrollView>, quindi non è possibile riutilizzare direttamente il codice componente di interfaccia utente meno che non si rielaborare / sostituire tutti gli elementi.
Ira Herman,

Risposte:


773

ReactJS è una libreria JavaScript che supporta sia il Web front-end sia l'esecuzione su un server, per la creazione di interfacce utente e applicazioni Web.

React Native è un framework mobile che viene compilato per i componenti delle app native, che consente di creare applicazioni mobili native per piattaforme diverse (iOS, Android e Windows Mobile) in JavaScript che consente di utilizzare ReactJS per costruire i componenti e implementa ReactJS sotto cappuccio.

Entrambi seguono l'estensione della sintassi JSX su JavaScript.

Entrambi sono di provenienza aperta da Facebook.


3
@LemuelAdane Ecco un commento da Facebook su come farlo: facebook.github.io/react/docs/environments.html . Ecco una bella introduzione che spiega come implementarlo: maketea.co.uk/2014/06/30/…
Nader Dabit

61
Quindi, se creo un'app in reattivo nativo, è possibile riutilizzarne una parte / tutto in un reagente JS o viceversa?
Troia Cosentino,

12
@MelAdane Il poster si riferisce probabilmente all'uso delle librerie ReactJS su un NodeJS al fine di creare file predefiniti (usando qualcosa come Webpack) che possono quindi essere serviti al client come file statici.
Pineda,

9
Se creo una webapp usando reagire, è possibile utilizzare lo stesso codice HTML / JS nell'app mobile usando reagire nativo?
Ravi Maniyar,

14
@RaviManiyar NO, puoi riutilizzare la tua logica aziendale ma non puoi riutilizzare i tuoi codici ui. React Native utilizza componenti nativi dell'interfaccia utente mentre React.JS utilizza è per il web e l'interfaccia utente viene creata utilizzando componenti HTML e CSS
Chromonav,

292

Ecco il progetto React .

Su Facebook, hanno inventato React in modo che JavaScript possa manipolare il DOM del sito Web più velocemente utilizzando il modello DOM virtuale.

L'aggiornamento completo del DOM è più lento rispetto al modello React virtual-dom , che aggiorna solo parti della pagina (leggi: aggiornamento parziale).

Come puoi capire da questo video , Facebook non ha inventato React perché hanno capito immediatamente che l'aggiornamento parziale sarebbe stato più veloce di quello convenzionale. Inizialmente avevano bisogno di un modo per ridurre i tempi di ricostruzione delle applicazioni di Facebook e fortunatamente questo ha dato vita al aggiornamento parziale del DOM.

React native è solo una conseguenza di React. È una piattaforma per creare app native usando JavaScript.

Prima di React native , era necessario conoscere Java per Android o Objective-C per iPhone e iPad per creare app native.

Con React Native è possibile imitare il comportamento dell'app nativa in JavaScript e, alla fine, otterrai un codice specifico della piattaforma come output. È anche possibile combinare il codice nativo con JavaScript se è necessario ottimizzare ulteriormente l'applicazione.

Come ha detto Olivia Bishop nel video , l'85% della base di codice nativa di React può essere condivisa tra le piattaforme. Questi sarebbero i componenti che le applicazioni tipicamente usano e la logica comune.

Il 15% del codice è specifico della piattaforma. Il JavaScript specifico della piattaforma è ciò che dà sapore alla piattaforma (e fa la differenza nell'esperienza).

La cosa interessante è questo codice specifico della piattaforma: è già stato scritto, quindi devi solo usarlo.


9
Personalmente mi piace di più questa risposta, in quanto è più dettagliata e offre collegamenti a ulteriori spiegazioni.
Cristi Potlog,

7
Mi piace anche questa risposta. "Prima di React Native ..." Non dimenticare che c'è anche Xamarin. ;)
Asp Upload

117

Reagire:

React è una libreria JavaScript dichiarativa, efficiente e flessibile per la creazione di interfacce utente.

Reagire nativo:

React Native ti consente di creare app mobili utilizzando solo JavaScript. Utilizza lo stesso design di React, permettendoti di comporre una ricca interfaccia utente mobile da componenti dichiarativi. React Native si combina perfettamente con i componenti scritti in Objective-C, Java o Swift. È semplice passare al codice nativo se è necessario ottimizzare alcuni aspetti dell'applicazione. È anche facile creare parte della tua app in React Native e parte della tua app utilizzando direttamente il codice nativo: è così che funziona l'app di Facebook.
Con React Native, non crei un'app Web mobile, un'app HTML5 o un'app ibrida. Costruisci un'app mobile reale indistinguibile da un'app creata usando Objective-C o Java. React Native utilizza gli stessi blocchi fondamentali dell'interfaccia utente delle normali app iOS e Android. Basta mettere insieme quei blocchi usando JavaScript e React.
React Native ti consente di creare la tua app più velocemente. Invece di ricompilare, puoi ricaricare la tua app all'istante. Con la ricarica a caldo, puoi persino eseguire un nuovo codice mantenendo lo stato dell'applicazione. Provalo: è un'esperienza magica.

Quindi in pratica React è la libreria UI per la visualizzazione della tua app Web, utilizzando JavaScript e JSX , React native è una libreria aggiuntiva nella parte superiore di React, per creare un'app nativa periOS e Androiddispositivi.

Esempio di codice di reazione :

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


Reagisci nativoEsempio di codice :

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

Per ulteriori informazioni su React , visitare il sito Web ufficiale creato dal team di Facebook:

https://facebook.github.io/react

Per ulteriori informazioni su React Native , visitare il sito Web nativo di React di seguito:

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


40
I tuoi esempi di codice sono utili, ma sarebbe molto meglio vedere il componente SAME implementato in ciascun framework
più elegante il

8
La tua risposta dovrebbe essere quella accettata, sono venuto qui cercando di vedere se React e React Native hanno la stessa architettura e se il codice sembra lo stesso non per le definizioni di entrambe le librerie.
Gherbi Hicham,

1
Vorrei aggiungere che se diventassi nativo non elaborato, avresti letteralmente solo due righe di codice, una delle quali viene impostata automaticamente per l'outlet (a seconda). Sì, avrai bisogno di un formatter data, ma comunque solo una riga. Ho difficoltà a leggere "Ecco perché la reazione è fantastica" quando ha letteralmente 20 volte più righe di codice rispetto alle app native reali. Detto questo, apprezzo molto la tua risposta e mi piace persino React sul web per le soluzioni che fornisce nel dominio in cui è eccezionale. Vorrei solo che più persone sapessero implementare i suoi schemi senza di essa, per confrontare quando è utile vs incubi di manutenzione
Stephen J

58

ReactJS è un framework per la creazione di una gerarchia di componenti dell'interfaccia utente. Ogni componente ha stato e oggetti di scena. I dati fluiscono dai componenti superiori a quelli di basso livello tramite oggetti di scena. Lo stato viene aggiornato nel componente di livello superiore utilizzando i gestori di eventi.

React native utilizza React framework per la creazione di componenti per app mobili. React native offre un set base di componenti per piattaforme iOS e Android. Alcuni dei componenti di React Native sono Navigator, TabBar, Text, TextInput, View, ScrollView. Questi componenti utilizzano internamente i componenti nativi di iOS UIKit e Android UI. React native consente inoltre NativeModules in cui il codice scritto in ObjectiveC per iOS e Java per Android può essere utilizzato in JavaScript.


41

Innanzitutto, le somiglianze: sia React & React Native (RN) sono stati progettati per creare interfacce utente flessibili. Ci sono molti vantaggi in questi framework, ma il take-away più fondamentale è che sono fatti per lo sviluppo dell'interfaccia utente. Facebook ha sviluppato RN alcuni anni dopo React.

React: Facebook ha progettato questo framework in modo che assomigli a scrivere il tuo JavaScript all'interno del tuo HTML / XML, motivo per cui i tag sono chiamati " JSX " (JavaScript XML) e sono simili ai familiari tag in stile HTML come <div>o <p>. Un segno distintivo di React sono le lettere maiuscole che indicano un componente personalizzato, ad esempio <MyFancyNavbar />, che esiste anche in RN. Tuttavia, React utilizza il DOM . Il DOM esiste per HTML, quindi React è usato per lo sviluppo web.

React Native: RN non utilizza HTML e quindi non viene utilizzato per lo sviluppo Web. È usato per ... praticamente tutto il resto! Sviluppo mobile (sia iOS che Android), dispositivi intelligenti (ad es. Orologi, TV), realtà aumentata, ecc. Poiché RN non ha DOM con cui interagire, invece di utilizzare lo stesso tipo di tag HTML utilizzati in React, utilizza il proprio tag che vengono quindi compilati in altre lingue. Ad esempio, anziché i <div>tag, gli sviluppatori di RN utilizzano il <View>tag incorporato di RN , che si compila in un altro codice nativo sotto il cofano (ad esempio android.viewsu Android; e UIViewsu iOS).

In breve: sono molto simili (per lo sviluppo dell'interfaccia utente) ma utilizzati per mezzi diversi.


Buona risposta .. Puoi elaborare un po 'di più e aggiungere più punti ad esso. Sarebbe bello per le persone che leggono.
sarath,

1
metti questa risposta in alto
JerryGoyal,

38
  1. React-Native è un framework per lo sviluppo di applicazioni Android e iOS che condivide l'80% - 90% del codice Javascript.

Mentre React.js è una libreria Javascript padre per lo sviluppo di applicazioni web.

  1. Mentre usi tag come <View>, <Text>molto frequentemente in React-Native, React.js usa tag html web come <div> <h1> <h2>, che sono solo sinonimi nel dizionario degli sviluppi web / mobile.

  2. Per React.js è necessario DOM per il rendering del percorso dei tag html, mentre per l'applicazione mobile: React-Native usa AppRegistry per registrare la tua app.

Spero che questa sia una spiegazione semplice per differenze / somiglianze rapide in React.js e React-Native.


25

Non possiamo confrontarli esattamente. Ci sono differenze nel caso d'uso .

(Aggiornamento 2018)


ReactJS

React ha come obiettivo principale lo sviluppo Web.

    • Il DOM virtuale di React è più veloce del modello convenzionale di aggiornamento completo , poiché il DOM virtuale aggiorna solo parti della pagina.
    • Puoi riutilizzare i componenti del codice in React, facendoti risparmiare molto tempo. (Puoi farlo anche in React Native.)
    • Come azienda: il rendering completo delle tue pagine, dal server al browser migliorerà il SEO della tua app web .
    • Si migliora la velocità di debug rendendo la vita del vostro sviluppatore più facile.
    • Puoi utilizzare lo sviluppo di app mobili ibride, come Cordova o Ionic, per creare app mobili con React, ma sta costruendo app in modo più efficiente con React Native da molti punti.

Reagisci nativo

Un'estensione di React , sviluppata per lo sviluppo mobile.

    • Il suo obiettivo principale è tutto sulle interfacce utente mobili .
    • iOS e Android sono coperti.
    • I componenti e i moduli dell'interfaccia utente nativi React riutilizzabili consentono il rendering nativo delle app ibride.
    • Non è necessario rivedere la tua vecchia app. Tutto quello che devi fare è aggiungere componenti dell'interfaccia utente nativa di React nel codice della tua app esistente , senza dover riscrivere.
    • Non utilizza HTML per eseguire il rendering dell'app . Fornisce componenti alternativi che funzionano in modo simile, quindi non sarebbe difficile capirli.
    • Poiché il tuo codice non viene visualizzato in una pagina HTML, ciò significa anche che non sarai in grado di riutilizzare le librerie che hai usato in precedenza con React che esegue il rendering di qualsiasi tipo di HTML, SVG o Canvas.
    • React Native non è composto da elementi web e non può essere disegnato nello stesso modo. Addio animazioni CSS!

Spero di averti aiutato :)


17

In un certo senso, React e React native seguono gli stessi principi di progettazione, tranne nel caso della progettazione dell'interfaccia utente.

  1. React native ha un set separato di tag per la definizione dell'interfaccia utente per dispositivi mobili, ma entrambi utilizzano JSX per la definizione dei componenti.
  2. L'intenzione principale di entrambi i sistemi è quella di sviluppare componenti dell'interfaccia utente riutilizzabili e ridurre lo sforzo di sviluppo delle sue composizioni.
  3. Se pianifichi e strutturi correttamente il codice, puoi utilizzare la stessa logica aziendale per dispositivi mobili e Web

Ad ogni modo, è una libreria eccellente per creare un'interfaccia utente per dispositivi mobili e web.


16

React è una libreria JavaScript dichiarativa, efficiente e flessibile per la creazione di interfacce utente. I tuoi componenti dicono a React ciò che vuoi rendere - quindi React aggiornerà e renderà efficienti solo i componenti giusti quando i tuoi dati cambiano. Qui ShoppingList è una classe componente React o tipo di componente React.

Un'app React Native è una vera app mobile. Con React Native, non crei un'app Web mobile, un'app HTML5 o un'app ibrida. Costruisci un'app mobile reale indistinguibile da un'app creata usando Objective-C o Java. React Native utilizza gli stessi blocchi fondamentali dell'interfaccia utente delle normali app iOS e Android.

Ulteriori informazioni


13

ReactJS è un framework di base, pensato per costruire un componente isolato in base a un modello reattivo, puoi considerarlo come la V di MVC, anche se vorrei affermare che reagire porta una sensazione diversa, specialmente se hai meno familiarità con il concetto reattivo .

ReactNative è un altro livello pensato per avere un componente impostato per piattaforme Android e iOS che sono comuni. Quindi il codice sembra sostanzialmente uguale a ReactJS perché è ReactJS, ma si carica nativamente su piattaforme mobili. Puoi anche collegare API più complesse e relative alla piattaforma con Java / Objective-C / Swift a seconda del sistema operativo e utilizzarlo in React.


13

React Native è sviluppato principalmente in JavaScript, il che significa che la maggior parte del codice necessario per iniziare può essere condivisa su più piattaforme. React Native eseguirà il rendering utilizzando componenti nativi. Le app React Native sono sviluppate nella lingua richiesta dalla piattaforma di destinazione, Objective-C o Swift per iOS, Java per Android, ecc. Il codice scritto non è condiviso tra le piattaforme e il loro comportamento varia. Hanno accesso diretto a tutte le funzionalità offerte dalla piattaforma senza alcuna limitazione.

React è una libreria JavaScript open source sviluppata da Facebook per la creazione di interfacce utente. È utilizzato per gestire il livello di visualizzazione per le app Web e mobili. ReactJS era utilizzato per creare componenti riutilizzabili dell'interfaccia utente. Attualmente è una delle librerie JavaScript più popolari nel campo it e ha una solida base e una grande comunità dietro di essa. Se impari ReactJS, devi avere conoscenza di JavaScript, HTML5 e CSS.


12

React è l'astrazione di base di React Native e React DOM , quindi se hai intenzione di lavorare con React Native avrai anche bisogno di React ... stesso con il web ma invece di React Native avrai bisogno di React DOM.

Poiché React è l'astrazione di base, la sintassi generale e il flusso di lavoro sono gli stessi, ma i componenti che useresti sono molto diversi, quindi dovrai imparare quelle differenze che sono in linea con React, la cosiddetta moto, che è "Impara una volta a scrivere ovunque" perché se conosci React (astrazione di base) potresti semplicemente imparare le differenze tra la piattaforma senza imparare un altro linguaggio di programmazione, sintassi e flusso di lavoro.


11

React-Native è un framework in cui ReactJS è una libreria javascript che puoi utilizzare per il tuo sito web.

React-native fornisce componenti core predefiniti (immagini, testo), in cui React fornisce una serie di componenti e li fa lavorare insieme.



9

Per quanto riguarda il ciclo di vita dei componenti e tutte le altre campane e fischietti è per lo più lo stesso.

La differenza è soprattutto il markup JSX utilizzato. React ne usa uno simile a HTML. L'altro è il markup utilizzato da React-native per visualizzare la vista.


8

React Native è per applicazioni mobili mentre React è per siti Web (front-end). Entrambi sono framework inventati da Facebook. React Native è un framework di sviluppo multipiattaforma che significa che si potrebbe scrivere quasi lo stesso codice sia per IOS che per Android e funzionerebbe. Personalmente so molto di più su React Native quindi lo lascerò a questo.


8

React Js sta manipolando con HTML Dom. Ma React native sta manipolando con il componente dell'interfaccia utente nativa mobile (iOS / Android).


7

ReactJS è una libreria javascript che viene utilizzata per creare interfacce Web. Avresti bisogno di un bundler come webpack e provare a installare moduli necessari per costruire il tuo sito web.

React Native è un framework javascript e viene fornito con tutto il necessario per scrivere app multipiattaforma (come iOS o Android). Avresti bisogno di xcode e android studio installati per compilare e distribuire la tua app.

A differenza di ReactJS, React-Native non usa HTML ma componenti simili che puoi usare attraverso iOS e Android per creare la tua app. Questi componenti utilizzano componenti nativi reali per creare applicazioni iOS e Android. A causa di ciò, le app React-Native sembrano reali a differenza di altre piattaforme di sviluppo ibride. I componenti aumentano anche la riusabilità del codice in quanto non è necessario creare nuovamente la stessa interfaccia utente su iOS e Android.


6

In termini semplici ReactJS è una libreria padre che restituisce qualcosa da renderizzare secondo l'ambiente host (browser, dispositivo mobile, server, desktop ... ecc.). Oltre al rendering, fornisce anche altri metodi come gli hook del ciclo di vita ... ecc.

Nel browser utilizza un'altra libreria reag-dom per il rendering di elementi DOM. Nei dispositivi mobili, utilizza componenti React-Native per il rendering di componenti dell'interfaccia utente nativi specifici della piattaforma (sia IOS che Android). COSÌ,

reagire + reagire-dom = sviluppo web

reagire + reagire nativo = sviluppo mobile


4

REACT è una libreria Javascript per creare applicazioni web con interfaccia grande / piccola come Facebook.

REACT NATIVE è un framework Javascript per lo sviluppo di applicazioni mobili native su Android, IOS e Windows Phone.

Entrambi sono aperti da Facebook.


3

Ecco le differenze che conosco:

  1. Hanno diversi tag html: React Native sta usando per gestire il testo e invece che in React.
  2. React Native utilizza componenti Touchable anziché un normale elemento pulsante.
  3. React Native ha componenti ScrollView e FlatList per gli elenchi di rendering.
  4. React Native utilizza AsyncStorage mentre React utilizza l'archiviazione locale.
  5. In React I router nativi funzionano come uno stack, mentre in React usiamo i componenti di route per mappare la navigazione.

3

In sintesi: React.js per lo sviluppo Web mentre React-Native per lo sviluppo di app mobili


3

React vs React Native

ReactJS

  • React viene utilizzato per la creazione di siti Web, app Web, SPA, ecc.
  • React è una libreria Javascript utilizzata per creare la gerarchia dell'interfaccia utente.
  • È responsabile del rendering dei componenti dell'interfaccia utente, è considerato parte V del framework MVC.
  • Il DOM virtuale di React è più veloce del modello convenzionale di aggiornamento completo, poiché il DOM virtuale aggiorna solo parti della pagina, riducendo così il tempo di aggiornamento della pagina.
  • React utilizza i componenti come unità base dell'interfaccia utente che possono essere riutilizzati per risparmiare tempo di codifica. Semplice e facile da imparare

Reagisci nativo

  • React Native è un framework utilizzato per creare app native multipiattaforma. Significa che puoi creare app native e la stessa app verrà eseguita su Android e iOS.
  • React native offre tutti i vantaggi di ReactJS
  • React native consente agli sviluppatori di creare app native in un approccio in stile web.
  • Lo sviluppatore front-end può diventare facilmente sviluppatore mobile.

2

React Js - React JS è una libreria javascript front-end, è una libreria di grandi dimensioni non un framework

  • Segue l'approccio basato sui componenti che aiuta a costruire
    componenti dell'interfaccia utente riutilizzabili
    • Viene utilizzato per lo sviluppo di interfacce Web e mobili complesse e interattive
    • Anche se è stato aperto solo nel 2015, ha una delle più grandi comunità che lo supportano.

ReactNative - React Native è un framework di applicazioni mobili open source.


2

Un po 'in ritardo alla festa, ma ecco una risposta più completa con esempi:

Reagire

React è una libreria UI basata su componenti che utilizza un "DOM ombra" per aggiornare in modo efficiente il DOM con ciò che è cambiato invece di ricostruire l'intero albero DOM per ogni modifica. Inizialmente è stato creato per le app Web, ma ora può essere utilizzato anche per dispositivi mobili e 3D / vr.

I componenti tra React e React Native non possono essere scambiati perché React Native si associa a elementi dell'interfaccia utente mobile nativi ma è possibile riutilizzare la logica aziendale e il codice relativo al non rendering.

ReactDOM

Inizialmente è stato incluso con la libreria React ma è stato suddiviso una volta che React veniva utilizzato per altre piattaforme oltre al semplice web. Serve come punto di accesso al DOM e viene utilizzato in unione con React.

Esempio:

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

Reagisci nativo

React Native è un framework mobile multipiattaforma che utilizza React e comunica tra Javascript e la sua controparte nativa tramite un "ponte". Per questo motivo, gran parte della strutturazione dell'interfaccia utente deve essere diversa quando si utilizza React Native. Ad esempio: durante la creazione di un elenco, si verificheranno importanti problemi di prestazioni se si tenta di utilizzare mapper compilare l'elenco anziché React NativeFlatList . React Native può essere utilizzato per sviluppare app mobili IOS / Android, nonché per orologi e TV intelligenti.

Expo

Expo è il punto di partenza quando si avvia una nuova app React Native.

Expo è un framework e una piattaforma per applicazioni React universali. È un insieme di strumenti e servizi costruiti attorno a React Native e piattaforme native che ti aiutano a sviluppare, costruire, distribuire e iterare rapidamente su iOS, Android e app Web

Nota: quando si utilizza Expo, è possibile utilizzare solo le API native che forniscono. Tutte le librerie aggiuntive che includerai dovranno essere pure javascript o dovrai espellere expo.

Stesso esempio usando 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,
    },
});

differenze:

  • Si noti che tutto al di fuori del rendering può rimanere lo stesso, ecco perché la logica aziendale / il codice della logica del ciclo di vita possono essere riutilizzati in React e React Native
  • In React Native tutti i componenti devono essere importati da reattivo-nativo o da un'altra libreria UI
  • L'uso di determinate API associate ai componenti nativi sarà generalmente più performante rispetto al tentativo di gestire tutto sul lato javascript. ex. mappare i componenti per creare un elenco rispetto all'utilizzo dell'elenco piatto
  • Differenze sottili: cose come onClicktrasformarsi in onPress, React Native usa i fogli di stile per definire gli stili in modo più performante e React Native usa la flexbox come struttura di layout predefinita per mantenere le cose reattive.
  • Poiché non esiste un "DOM" tradizionale in React Native, solo le librerie javascript pure possono essere utilizzate sia in React che in React Native

React360

Vale anche la pena ricordare che React può essere utilizzato anche per sviluppare applicazioni 3D / VR. La struttura del componente è molto simile a React Native. https://facebook.github.io/react-360/


1

Reactjs utilizza un React-Dom non il dom del browser mentre React native utilizza Virtual Dom ma i due usano la stessa sintassi, ovvero se è possibile utilizzare Reactjs allora è possibile utilizzare React nativo. come la tua navigazione di reazione e altre librerie comuni che hanno in comune.


La risposta breve è che reattivo-nativo crea app mobili per iOS, Android e Windows Mobile che è possibile compilare e inserire negli app store affinché gli utenti possano installarle. Reactjs è per la creazione di pagine Web da utilizzare in un browser Web. Entrambi utilizzano componenti riutilizzabili, ma la sintassi utilizzata per il rendering degli elementi nei componenti (utilizzando JSX) è diversa. Reagire JSX rende html come componenti come <h1>, <p>ecc Dove reagiscono nativo rende componenti nativi vista app come <View>e <Text>.
Ira Herman,

1

In risposta al commento di @poshest sopra, ecco una versione nativa di React del codice Clock precedentemente pubblicato in React (mi dispiace, non sono stato in grado di commentare direttamente la sezione, altrimenti avrei aggiunto il codice lì):

Reagisci Esempio di codice nativo

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

Si noti che lo stile è interamente una mia scelta e non cerca di replicare direttamente i tag <h1>e <h2>utilizzati nel codice React.


1

Alcune differenze sono le seguenti:
1- React-Native è un framework utilizzato per creare app mobili, dove ReactJS è una libreria javascript che puoi utilizzare per il tuo sito web.
2- React-Native non utilizza HTML per eseguire il rendering dell'app mentre React utilizza.
3- React-Native utilizzato per sviluppare solo app per dispositivi mobili mentre React utilizza per siti Web e dispositivi mobili.


0

Reagisci nativo

  • È un framework per la creazione di applicazioni native usando JavaScript.

  • Si compila in componenti di app native, il che rende possibile la creazione di applicazioni mobili native.

  • Non è necessario rivedere la tua vecchia app. Tutto quello che devi fare è aggiungere i componenti dell'interfaccia utente nativa di React nel codice della tua app esistente, senza dover riscrivere.

Reagisci js

  • Supporta sia il Web front-end sia l'esecuzione su un server, per la creazione di interfacce utente e applicazioni Web.

  • Inoltre, ci consente di creare componenti dell'interfaccia utente riutilizzabili.

  • Puoi riutilizzare i componenti del codice in React JS, facendoti risparmiare molto tempo.


0

React.js spesso definito React o ReactJS è una libreria JavaScript responsabile della creazione di una gerarchia di componenti dell'interfaccia utente o, in altre parole, responsabile del rendering dei componenti dell'interfaccia utente. Fornisce supporto per frontend e lato server.

React Native è un framework per la creazione di applicazioni native tramite JavaScript. React Native viene compilato per i componenti delle app native, il che consente di creare applicazioni mobili native. In React JS, React è l'astrazione di base di React DOM per la piattaforma web, mentre con React Native, React è ancora l'astrazione di base ma di React Native. Quindi la sintassi e il flusso di lavoro rimangono simili, ma i componenti sono diversi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.