React Native ve React arasındaki fark nedir?


730

React'i meraktan öğrenmeye başladım ve React ve React Native arasındaki farkı bilmek istedim - ancak Google'ı kullanarak tatmin edici bir cevap bulamadı. React ve React Native aynı formata sahip gibi görünüyor. Tamamen farklı sözdizimleri var mı?


61
Çoğu kişi bu soruyu soran bir sözlük yanıtı veriyor, ne kadar birbirlerinin ne kadar birbirlerinin değişebileceğini bilmek istiyor: React kodunu React Native'e taşımak ne kadar kolay? İPad'de isterseniz web uygulamanızın ön ucunu farklı React koduna yeniden yazmanız gerekecek mi? Ne kadar farklı?
Lawrence Weru

9
ReactJS ve React-Native arasındaki temel farklar nelerdir? buraya bağlantı medium.com/@alexmngn/…
core114

14
Kısa yanıt, yerel yanıtın iOS, Android ve Windows Mobile için derleyebileceğiniz ve kullanıcıların yüklemesi için uygulama mağazalarına koyabileceğiniz mobil uygulamalar oluşturmasıdır. Reactjs, bir web tarayıcısında kullanılmak üzere web sayfaları oluşturmak içindir. Her ikisi de yeniden kullanılabilir bileşenler kullanır, ancak bileşenlerde (JSX kullanarak) öğeleri oluşturmak için kullandığınız sözdizimi farklıdır. Tepki JSX vermektedir html benzeri gibi bileşenler <h1>, <p>gibi yerleşik uygulaması görünüm bileşenlerini oluşturur yerli tepki vs <View>, <Text>, <Image>, <ScrollView>doğrudan, yeniden işleme sürece / UI bileşeni kodu yeniden tüm öğeleri yerini alamaz, bu yüzden.
Ira Herman

Yanıtlar:


772

ReactJS , kullanıcı arabirimleri ve web uygulamaları oluşturmak için hem ön uç web'i hem de sunucuda çalıştırmayı destekleyen bir JavaScript kitaplığıdır.

React Native , yerel uygulama bileşenlerini derleyen ve JavaScript'te ReactJS'yi bileşenlerinizi oluşturmak için kullanmanıza izin veren farklı platformlar (iOS, Android ve Windows Mobile) için yerel mobil uygulamalar oluşturmanıza ve başlık.

Her ikisi de JavaScript için JSX sözdizimi uzantısını izler.

Her ikisi de Facebook tarafından açık kaynaklı.


3
@LemuelAdane İşte Facebook'tan bunun nasıl yapıldığına dair bir yazı: facebook.github.io/react/docs/environments.html . İşte bunu nasıl uygulayacağınız güzel bir giriş: maketea.co.uk/2014/06/30/…
Nader Dabit

61
Peki, yerel reaksiyonda bir uygulama oluşturursam, herhangi bir / hepsi reaktJS'de tekrar kullanılabilir mi, yoksa tam tersi mi?
Troy Cosentino

12
@MelAdane Poster, daha sonra istemciye statik dosyalar olarak sunulabilen önceden oluşturulmuş dosyalar (Webpack gibi bir şey kullanarak) oluşturmak için bir NodeJS'de ReactJS kitaplıklarının kullanılmasından bahsediyor.
Pineda

9
Reaksiyon kullanarak bir web uygulaması oluşturursam, aynı HTML / JS kodu, yerel uygulamada tepki kullanarak mobil uygulamada kullanılabilir mi?
Ravi Maniyar

14
@RaviManiyar HAYIR, iş mantığınızı yeniden kullanabilirsiniz, ancak kullanıcı arabirimi kodlarınızı yeniden kullanamazsınız. Yerli kullandýnýz yerli ui bileşenlerini tepki React.JS kullandığı web için ve ui html bileşenleri ve css kullanılarak inşa edilirken
Chromonav

292

İşte React projesi .

Facebook'ta React'i icat ettiler, böylece JavaScript sanal DOM modelini kullanarak web sitesi DOM'sini daha hızlı değiştirebildi.

DOM tam yenileme, sayfanın yalnızca bölümlerini yenileyen React sanal dom modeline kıyasla daha yavaştır (okuma: kısmi yenileme).

Bu videodan anlayabileceğiniz gibi , Facebook React'i icat etmedi çünkü kısmi yenilemenin geleneksel olandan daha hızlı olacağını hemen anladılar. Başlangıçta Facebook uygulamasının yeniden oluşturma süresini azaltmanın bir yoluna ihtiyaçları vardı ve neyse ki bu kısmi DOM yenilemesini hayata geçirdi.

Yerli tepki yalnızca Tepki'nin bir sonucudur. JavaScript kullanarak yerel uygulamalar oluşturmak için bir platformdur.

Yerel tepki vermeden önce, yerel uygulamalar oluşturmak için Android için Java veya iPhone ve iPad için Objective-C'yi bilmeniz gerekiyordu.

React Native ile yerel uygulamanın JavaScript'teki davranışını taklit etmek mümkündür ve sonunda çıktı olarak platforma özel kod alırsınız. Uygulamanızı daha da optimize etmeniz gerekirse yerel kodu JavaScript ile karıştırabilirsiniz .

Olivia Bishop'un videoda söylediği gibi , React yerel kod tabanının % 85'i platformlar arasında paylaşılabilir. Bunlar, uygulamaların tipik olarak kullandığı bileşenler ve ortak mantık olacaktır.

Kodun% 15'i platforma özgüdür. Platforma özel JavaScript, platforma lezzet katan (ve deneyimdeki farkı yaratan).

Harika olan bu platforma özel koddur - zaten yazılmıştır, bu yüzden sadece kullanmanız gerekir.


9
Şahsen bu cevabı daha çok seviyorum, çünkü daha ayrıntılı bir açıklama daha fazla açıklama için bağlantılar sunuyor.
Cristi Potlog

7
Ben de bu yanıtı beğendim. "Yerli Tepki Vermeden Önce ..." Unutmayın ki Xamarin de var. ;)
Asp Upload

117

Tepki:

React, kullanıcı arabirimleri oluşturmak için bildirici, verimli ve esnek bir JavaScript kitaplığıdır.

Yerli Tepki:

React Native, yalnızca JavaScript kullanarak mobil uygulamalar oluşturmanıza olanak tanır. React ile aynı tasarımı kullanır ve bildirim bileşenlerinden zengin bir mobil kullanıcı arayüzü oluşturmanıza olanak tanır.
React Native ile bir "mobil web uygulaması", bir "HTML5 uygulaması" veya "karma uygulama" oluşturmazsınız. Objective-C veya Java kullanılarak oluşturulan bir uygulamadan ayırt edilemeyen gerçek bir mobil uygulama oluşturuyorsunuz. React Native, normal iOS ve Android uygulamalarıyla aynı temel UI yapı taşlarını kullanır. JavaScript ve React kullanarak bu yapı taşlarını bir araya getiriyorsunuz.
React Native, uygulamanızı daha hızlı oluşturmanıza olanak tanır. Yeniden derlemek yerine uygulamanızı anında yeniden yükleyebilirsiniz. Sıcak yeniden yüklemeyle, uygulama durumunuzu korurken yeni kod da çalıştırabilirsiniz. Deneyin - büyülü bir deneyim.
React Native, Objective-C, Java veya Swift ile yazılmış bileşenlerle sorunsuz bir şekilde birleşir. Uygulamanızın birkaç yönünü optimize etmeniz gerekiyorsa yerel koda gitmeniz kolaydır. React Native'da uygulamanızın bir kısmını ve doğrudan yerel kodu kullanarak uygulamanızın bir bölümünü oluşturmak da kolaydır - Facebook uygulaması bu şekilde çalışır.

Temelde React , javascript ve JSX kullanarak web uygulamanızın görünümü için kullanıcı arayüzü kütüphanesidir , React native , React'in üstünde ek bir kütüphanedir iOSve Androidcihazlar için yerel bir uygulama oluşturur .

Reaksiyon kodu örneği:

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


Reaksiyon Yerel kod örneği:

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 hakkında daha fazla bilgi için facebook ekibi tarafından oluşturulan resmi web sitelerini ziyaret edin:

https://facebook.github.io/react

React Native hakkında daha fazla bilgi için aşağıdaki React yerel web sitesini ziyaret edin:

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


40
Kod örnekleriniz yararlıdır, ancak her çerçevede SAME bileşeninin uygulandığını görmek çok daha iyi olur
en

8
Cevabınız kabul edilen cevap olmalı, React ve React Native'ın aynı mimariye sahip olup olmadığını ve kodun her iki kütüphanenin tanımları için aynı görünüp görünmediğini görmek için buraya geldim.
Gherbi Hicham

1
Eklemek istiyorum, eğer ham yerel olsaydınız, kelimenin tam anlamıyla sadece biri kod çıkışı için otomatik olarak ayarlanan iki kod satırınız olurdu (bağlı olarak). Evet, bir tarih biçimlendiricisine ihtiyacınız olacak, ancak yine de yalnızca bir satır. Tam anlamıyla gerçek yerel uygulamalardan 20 kat daha fazla kod satırı olduğunda "Bu yüzden tepki harika" okumakta zorlanıyor. Bununla birlikte, cevabınızı takdir ediyorum ve hatta harika olduğu alanda sağladığı çözümler için web'de React'ın keyfini çıkarıyorum. Keşke daha fazla insanın bakım kalıp kabartmasıyla ne zaman yararlı olduğunu karşılaştırmak için desenlerini onsuz nasıl uygulayacağını bilmesini diliyorum
Stephen J

58

ReactJS, UI bileşenlerinin hiyerarşisini oluşturmak için bir çerçevedir. Her bileşenin durumu ve desteği vardır. Veri, üst kısımdan düşük seviyeli bileşenlere aksesuarlar aracılığıyla akar. Durum, olay işleyicileri kullanılarak üst düzey bileşende güncelleştirilir.

Yerel olarak tepki ver Mobil uygulamalar için bileşenler oluşturmak için React çerçevesini kullanır. React native, hem iOS hem de Android platformları için temel bir bileşen kümesi sağlar. React Native içindeki bazı bileşenler Navigator, TabBar, Text, TextInput, View, ScrollView'dur. Bu bileşenler dahili iOS UIKit ve Android UI bileşenlerini dahili olarak kullanır. Native React ayrıca iOS için ObjectiveC ve Android için Java'da yazılan kodun JavaScript içinde kullanılabildiği NativeModules'e de izin verir.


41

Birincisi, benzerlikler: Hem React & React Native (RN) hem de esnek kullanıcı arayüzleri oluşturmak için tasarlanmıştır. Bu çerçevelerin tonlarca faydası vardır, ancak en temel götürme, UI-geliştirme için yapıldıklarıdır. Facebook, React'ten birkaç yıl sonra RN geliştirdi.

Tepki: Facebook bu çerçeve neredeyse etiketleri "olarak adlandırılır yüzden HTML / XML, dolayı JavaScript içini yazmak gibi olacak şekilde tasarlanmıştır JSX " (JavaScript, XML) ve tanıdık HTML benzeri gibi etiketlerine benzer <div>ya <p>. React'in ayırt edici özelliği, RN'de de bulunan gibi özel bir bileşeni gösteren büyük harfli etiketlerdir <MyFancyNavbar />. Ancak, React DOM kullanır . DOM HTML için mevcut olduğundan React web geliştirme için kullanılıyor.

Native React: RN HTML kullanmaz ve bu nedenle web geliştirme için kullanılmaz. Hemen hemen her şey için kullanılır! Mobil geliştirme (hem iOS hem de Android), akıllı cihazlar (örn. Saatler, TV'ler), artırılmış gerçeklik vb. RN'nin etkileşimde bulunacağı DOM olmadığından, React'te kullanılan aynı tür HTML etiketlerini kullanmak yerine kendi daha sonra diğer dillere derlenen etiketler. Örneğin <div>, RN geliştiricileri etiketler yerine <View>, başlık altında diğer yerel kodlara (ör android.view. Android ve UIViewiOS'ta) derlenen RN'nin yerleşik etiketini kullanır .

Kısacası: (UI geliştirme için) çok benzerler, ancak farklı ortamlar için kullanılıyorlar.


İyi cevap .. U biraz daha ayrıntı ve daha fazla puan ekleyebilirsiniz. Okuyanlar için iyi olurdu.
sarath

1
bu cevabı zirveye koy
JerryGoyal

38
  1. React-Native, Javascript kodunun% 80 -% 90'ını paylaşan Android ve iOS uygulamaları geliştirmek için bir çerçevedir.

React.js web uygulamaları geliştirmek için bir üst Javascript kütüphanesidir.

  1. Eğer gibi etiketler kullanırken <View>, <Text>çok sık reaksiyon göster-Yerli, React.js gibi web html etiketlerini kullanır <div> <h1> <h2>sadece web / mobil gelişmelerin sözlükte eşanlamlı olduğunda.

  2. React.js için html etiketlerinin yol oluşturulması için DOM gerekirken, mobil uygulama için: React-Native uygulamanızı kaydetmek için AppRegistry kullanır.

Umarım bu React.js ve React-Native'deki hızlı farklılıklar / benzerlikler için kolay bir açıklamadır.


25

Onları tam olarak karşılaştıramayız. Kullanım durumunda farklılıklar vardır .

(2018 güncellemesi)


ReactJS

React ana odak noktası Web Geliştirme vardır.

    • Sanal DOM sayfanın yalnızca bir bölümünü yenilediğinden, React'in sanal DOM'u geleneksel tam yenileme modelinden daha hızlıdır .
    • Yapabilirsin React'ta kod bileşenlerini yeniden ve size çok zaman kazandırabilirsiniz. (React Native'da da yapabilirsiniz.)
    • Bir işletme olarak: Sayfalarınızın sunucudan tarayıcıya tamamen oluşturulması web uygulamanızın SEO'sunu geliştirir .
    • Bu ayıklama hızını artırır Geliştiricinizin yaşamı kolaylaştırır.
    • React ile mobil uygulamalar oluşturmak için Cordova veya Ionic gibi hibrit mobil uygulama geliştirmeyi kullanabilirsiniz, ancak React Native ile birçok noktadan daha verimli mobil uygulamalar geliştiriyorsunuz.

Yerli Tepki

Mobil Geliştirmede belirtilen React'ın bir uzantısı .

    • Ana odak noktası Mobil Kullanıcı Arayüzleri ile ilgilidir .
    • iOS ve Android kapsam dahilindedir.
    • Yeniden Kullanılabilir Reaksiyon Yerel UI bileşenleri ve modülleri , hibrit uygulamaların yerel olarak oluşturulmasına olanak tanır.
    • Eski uygulamanızı elden geçirmenize gerek yok. Yapmanız gereken tek şey, yeniden yazmak zorunda kalmadan mevcut uygulamanızın koduna React Native UI bileşenleri eklemek .
    • Uygulamayı oluşturmak için HTML kullanmaz . Benzer şekilde çalışan alternatif bileşenler sağlar, bu yüzden bunları anlamak zor olmaz.
    • Kodunuz bir HTML sayfasında oluşturulmadığından, bu , React ile daha önce kullandığınız herhangi bir HTML, SVG veya Tuval oluşturan kütüphaneleri yeniden kullanamayacağınız anlamına gelir .
    • React Native, web öğelerinden yapılmaz ve aynı şekilde biçimlendirilemez. Güle güle CSS Animasyonları!

Umarım sana yardımcı oldum :)


17

Basit bir şekilde, React ve React native kullanıcı arabirimi tasarlama durumu dışında aynı tasarım ilkelerini izler.

  1. React native, mobil cihazlar için kullanıcı arabirimini tanımlamak için ayrı bir etiket kümesine sahiptir, ancak her ikisi de bileşenleri tanımlamak için JSX kullanır.
  2. Her iki sistemin de temel amacı, yeniden kullanılabilir UI bileşenleri geliştirmek ve bileşimleriyle geliştirme çabasını azaltmaktır.
  3. Kodu düzgün bir şekilde planlar ve yapılandırırsanız, mobil ve web için aynı iş mantığını kullanabilirsiniz

Her neyse, mobil ve web için kullanıcı arayüzü oluşturmak için mükemmel bir kütüphane.


16

React, kullanıcı arabirimleri oluşturmak için bildirimsel, verimli ve esnek bir JavaScript kitaplığıdır. Bileşenleriniz React'e ne oluşturmak istediğinizi söyler - sonra React verileriniz değiştiğinde doğru bileşenleri etkin bir şekilde günceller ve oluşturur. Burada, ShoppingList bir React bileşen sınıfı veya React bileşen türüdür.

Bir React Native uygulaması gerçek bir mobil uygulama. React Native ile bir "mobil web uygulaması", bir "HTML5 uygulaması" veya "karma uygulama" oluşturmazsınız. Objective-C veya Java kullanılarak oluşturulan bir uygulamadan ayırt edilemeyen gerçek bir mobil uygulama oluşturuyorsunuz. React Native, normal iOS ve Android uygulamalarıyla aynı temel UI yapı taşlarını kullanır.

Daha fazla bilgi


13

ReactJS, reaktif desene dayalı olarak izole edilmiş bileşen oluşturmak için temel bir çerçevedir, bunu MVC'den V olarak düşünebilirsiniz, ancak reaksiyonun farklı bir his getirdiğini belirtmek isterim, özellikle reaktif kavramı daha az biliyorsanız .

ReactNative, Android ve iOS platformu için ortak olan belirli bir bileşene sahip olması amaçlanan başka bir katmandır. Kod ReactJS ile aynı görünüyor çünkü ReactJS, ancak mobil platformlarda doğal olarak yükleniyor. Ayrıca işletim sistemine bağlı olarak Java / Objective-C / Swift ile daha karmaşık ve platform göreli API arasında köprü oluşturabilir ve React içinde kullanabilirsiniz.


13

Yerli Tepki öncelikle JavaScript'te geliştirilmiştir, yani başlamak için ihtiyacınız olan kodun çoğu platformlar arasında paylaşılabilir. Native React yerel bileşenler kullanılarak oluşturulur. React Native uygulamaları, hedeflediği platformun gerektirdiği dilde, iOS için Objective-C veya Swift, Android için Java vb. Herhangi bir kısıtlama olmaksızın platform tarafından sunulan tüm özelliklere doğrudan erişebilirler.

React , kullanıcı arayüzleri oluşturmak için Facebook tarafından geliştirilen açık kaynaklı bir JavaScript kütüphanesidir. Web ve mobil uygulamalar için görünüm katmanını işlemek için kullanılır. ReactJS, yeniden kullanılabilir UI bileşenleri oluşturmak için kullanılır.Şu anda bu alandaki en popüler JavaScript kitaplıklarından biridir ve arkasında güçlü bir temel ve geniş bir topluluk vardır.ReakctJS öğrenirseniz, JavaScript, HTML5 ve CSS bilgisine sahip olmanız gerekir.


12

React , React Native ve React DOM'un temel soyutlamasıdır , bu nedenle React Native ile çalışacaksanız da React'e ihtiyacınız olacak ... web ile aynı olacak, ancak React Native yerine React DOM'a ihtiyacınız olacak.

React temel soyutlama olduğundan, genel sözdizimi ve iş akışı aynıdır, ancak kullanacağınız bileşenler çok farklıdır, bu nedenle bu farkları öğrenmeniz gerekir. React'i (temel soyutlama) bilirsiniz, başka bir programlama dili, sözdizimi ve iş akışı öğrenmeden platform arasındaki farkları öğrenebilirsiniz.


11

React-Native, ReactJS'nin web siteniz için kullanabileceğiniz bir javascript kütüphanesi olduğu bir çerçevedir.

React-native, React'in bir grup bileşen sağladığı ve bunların birlikte çalışmasını sağlayan varsayılan çekirdek bileşenleri (resimler, metin) sağlar.



9

Bileşen yaşam döngüsü ve diğer tüm çan ve ıslıklarla ilgili olarak çoğunlukla aynıdır.

Aradaki fark çoğunlukla kullanılan JSX işaretlemesidir. React, html'ye benzeyen bir yöntem kullanır. Diğeri, reaksiyonu görüntülemek için yerli tarafından kullanılan işaretlemedir.


8

React Native mobil uygulamalar için, React web siteleri için (ön uç). Her ikisi de Facebook tarafından icat edilen çerçeveler. React Native, hem IOS hem de Android için neredeyse aynı kodu yazabileceği ve çalışacağı anlamına gelen çapraz platform geliştiren bir platformdur. Şahsen React Native hakkında çok daha fazla şey biliyorum, bu yüzden bunu bırakacağım.


8

React Js HTML Dom ile manipüle ediyor. Ancak React native, mobil (iOS / android) yerel kullanıcı arayüzü bileşeniyle işlem yapıyor.


7

ReactJS , web arayüzleri oluşturmak için kullanılan bir javascript kütüphanesidir . Webpack gibi bir paketleyiciye ihtiyacınız olacak ve web sitenizi oluşturmak için ihtiyacınız olan modülleri yüklemeye çalışacaksınız.

React Native bir javascript çerçevesidir ve çok platformlu uygulamalar (iOS veya Android gibi) yazmak için ihtiyacınız olan her şeyle birlikte gelir. Uygulamanızı oluşturmak ve dağıtmak için yüklü xcode ve android studio gerekir.

ReactJS'den farklı olarak, React-Native HTML kullanmaz, ancak uygulamanızı oluşturmak için ios ve android genelinde kullanabileceğiniz benzer bileşenleri kullanır. Bu bileşenler, iOS ve Android uygulamalarını oluşturmak için gerçek yerel bileşenler kullanır. Bu React-Native uygulamaları nedeniyle diğer Hibrit geliştirme platformlarının aksine gerçek hissediyor. Bileşenler ayrıca ios ve android'de tekrar aynı kullanıcı arayüzü oluşturmanıza gerek olmadığından kodunuzun yeniden kullanılabilirliğini artırır.


6

Basit bir ifadeyle ReactJS, ana makine ortamına (tarayıcı, mobil, sunucu, masaüstü..etc) göre işlenecek bir şey döndüren üst kütüphanedir. Oluşturmanın yanı sıra, yaşam döngüsü kancaları gibi diğer yöntemleri de sağlar.

Tarayıcıda, DOM öğelerini oluşturmak için başka bir kütüphane tepki-dom kullanır. Mobilde, platforma özgü (Hem IOS hem de Android) yerel UI bileşenlerini oluşturmak için React-Native bileşenleri kullanır. YANİ,

tepki + tepki-dom = web geliştirme

tepki + tepki-yerel = mobil geliştirme


4

REACT Facebook gibi büyük / küçük arayüz web uygulaması oluşturmak için Javascript kütüphanesidir.

REACT NATIVE , Android, IOS ve Windows Phone'da yerel mobil uygulama geliştirmek için Javascript çerçevesidir.

Her ikisi de açık kaynaklı.


3

İşte bildiğim farklılıklar:

  1. Farklı html etiketlerine sahipler: React Native, React yerine metin işlemek için kullanıyor.
  2. React Native, normal bir düğme öğesi yerine Dokunulabilir bileşenler kullanıyor.
  3. React Native, oluşturma listeleri için ScrollView ve FlatList bileşenlerine sahiptir.
  4. React yerel depolama birimi kullanılırken React Native, AsyncStorage kullanıyor.
  5. React Native yönlendiricileri yığın olarak işlev görür, React'deyken navigasyonu eşleştirmek için Rota bileşenlerini kullanırız.

3

Özetle: Mobil Uygulama Geliştirme için React-Native iken Web Geliştirme için React.js


3

React ve React Native

ReactJS

  • React web siteleri, web uygulamaları, SPA'lar vb. Oluşturmak için kullanılır.
  • React, UI hiyerarşisi oluşturmak için kullanılan bir Javascript kütüphanesidir.
  • UI bileşenlerinin oluşturulmasından sorumludur, MVC çerçevesinin V parçası olarak kabul edilir.
  • React'in sanal DOM'si, geleneksel tam yenileme modelinden daha hızlıdır, çünkü sanal DOM, sayfanın yalnızca bölümlerini yeniler, böylece sayfa yenileme süresini azaltır.
  • React, UI'nin temel birimi olarak bileşenleri kullanır ve bu da yeniden kullanılabilir, bu da kodlama süresinden tasarruf sağlar. Basit ve öğrenmesi kolay.

Yerli Tepki

  • React Native, platformlar arası Yerel uygulamalar oluşturmak için kullanılan bir çerçevedir. Bu, yerel uygulamalar oluşturabileceğiniz ve aynı uygulamanın Android ve iOS'ta çalışacağı anlamına gelir.
  • React native, ReactJS'nin tüm avantajlarına sahiptir
  • Yerel olarak tepki ver, geliştiricilerin web tarzı yaklaşımda yerel uygulamalar oluşturmalarına olanak tanır.
  • Ön uç geliştirici kolayca mobil geliştirici olabilir.

2

React Js - React JS ön uç javascript kitaplığı bu büyük kitaplık bir çerçeve değil


  • Yeniden kullanılabilir UI bileşenlerinin oluşturulmasına yardımcı olan bileşen tabanlı yaklaşımı izler
    • Karmaşık ve etkileşimli web ve mobil kullanıcı arayüzü geliştirmek için kullanılır
    • Sadece 2015 yılında açık kaynaklı olmasına rağmen, onu destekleyen en büyük topluluklardan birine sahiptir.

ReactNative - React Native, açık kaynaklı bir mobil uygulama çerçevesidir.


2

Partiye biraz geç, ama işte örneklerle daha kapsamlı bir cevap:

Tepki

React, DOM'u her değişiklik için tüm DOM ağacını yeniden oluşturmak yerine değişenlerle verimli bir şekilde güncellemek için "gölge DOM" kullanan bileşen tabanlı bir kullanıcı arayüzü kütüphanesidir. Başlangıçta web uygulamaları için üretildi, ancak şimdi mobil ve 3D / vr için de kullanılabilir.

React ve React Native arasındaki bileşenler birbirinin yerine kullanılamaz çünkü React yerel mobil kullanıcı arabirimi öğeleriyle yerel eşleşir, ancak iş mantığı ve oluşturma ile ilgili olmayan kod yeniden kullanılabilir.

ReactDOM

Başlangıçta React kütüphanesine dahil edildi, ancak React sadece web dışındaki diğer platformlar için kullanıldığında ayrıldı. DOM'a giriş noktası görevi görür ve React ile birlikte kullanılır.

Misal:

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

Yerli Tepki

React Native, React kullanan ve Javascript ile yerel karşılığı arasında bir "köprü" aracılığıyla iletişim kuran çapraz platformlu bir mobil çerçevedir. Bu nedenle, React Native kullanırken birçok UI yapılandırması farklı olmalıdır. Örneğin: bir liste oluştururken, mapReact Native yerine listeyi oluşturmak için kullanmaya çalışırsanız önemli performans sorunlarıyla karşılaşırsınız FlatList. React Native, akıllı saatler ve TV'lerin yanı sıra IOS / Android mobil uygulamalar oluşturmak için kullanılabilir.

Expo

Yeni bir React Native uygulaması başlatılırken Expo en iyisidir.

Expo evrensel React uygulamaları için bir çerçeve ve platformdur. İOS, Android ve web uygulamalarını geliştirmenize, derlemenize, dağıtmanıza ve hızlı bir şekilde yinelemenize yardımcı olan React Native ve yerel platformlar etrafında oluşturulmuş bir dizi araç ve hizmettir

Not: Expo kullanırken yalnızca sağladıkları Yerel Api'leri kullanabilirsiniz. Eklediğiniz tüm ek kitaplıkların saf javascript olması veya expo'yu çıkarmanız gerekecektir.

React Native kullanan aynı örnek:

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

farklılıklar:

  • Oluşturma dışındaki her şeyin aynı kalabileceğine dikkat edin, bu nedenle iş mantığı / yaşam döngüsü mantık kodu React ve React Native'de yeniden kullanılabilir
  • React Native'de tüm bileşenlerin reat-native veya başka bir UI kütüphanesinden içe aktarılması gerekir
  • Yerel bileşenlerle eşlenen belirli API'leri kullanmak genellikle javascript tarafındaki her şeyi ele almaya çalışmaktan daha performanslı olacaktır. ex. Liste oluşturmak için düzleme kullanarak düz listeyi kullanma
  • İnce farklar: onClickdönüşmek gibi şeyler onPress, React Native, stilleri daha verimli bir şekilde tanımlamak için stil sayfalarını kullanır ve React Native, şeyleri yanıtlamak için varsayılan düzen yapısı olarak flexbox kullanır.
  • React Native'de geleneksel "DOM" olmadığından, React ve React Native'de yalnızca saf javascript kütüphaneleri kullanılabilir

React360

React'in 3D / VR uygulamaları geliştirmek için de kullanılabileceğini belirtmek gerekir. Bileşen yapısı React Native'e çok benzer. https://facebook.github.io/react-360/


1

reaktjs tarayıcı dom değil bir tepki dom kullanır, yerel tepki sanal dom kullanır, ancak ikisi aynı sözdizimini kullanır, yani reaktjs kullanabiliyorsanız, tepki yerli kullanabilirsiniz. tepki navigasyonunuz ve ortak kütüphaneleri gibi.


Kısa yanıt, yerel yanıtın iOS, Android ve Windows Mobile için derleyebileceğiniz ve kullanıcıların yüklemesi için uygulama mağazalarına koyabileceğiniz mobil uygulamalar oluşturmasıdır. Reactjs, bir web tarayıcısında kullanılmak üzere web sayfaları oluşturmak içindir. Her ikisi de yeniden kullanılabilir bileşenler kullanır, ancak bileşenlerde (JSX kullanarak) öğeleri oluşturmak için kullandığınız sözdizimi farklıdır. React JSX hale html benzeri gibi bileşenler <h1>, <p>doğal uygulama görünüşüdür bileşenleri hale gibi yerli tepki vs <View>ve <Text>.
Ira Herman

1

Yukarıdaki @poshest gelen yoruma yanıt olarak , burada daha önce React yayınlanan Clock kodunun bir React Native versiyonu (üzgünüm, doğrudan bölüme yorum yapamazdım , aksi takdirde orada kodu eklerdim):

Reaksiyon Yerel kod örneği

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

Stilin tamamen benim seçimim olduğunu ve React kodunda kullanılan <h1>ve <h2>etiketlerini doğrudan çoğaltmaya çalışmadığını unutmayın .


1

Bazı farklılıklar aşağıdaki gibidir:
1- React-Native, Mobil Uygulamalar oluşturmak için kullanılan ve ReactJS'nin web siteniz için kullanabileceğiniz bir javascript kütüphanesi olduğu bir çerçevedir.
2- React-Native, React kullanırken uygulamayı oluşturmak için HTML kullanmaz.
3- React-Native web sitesi ve Mobil için React kullanırken sadece Mobil Uygulama geliştirmek için kullanılır.


0

Yerli Tepki

  • JavaScript kullanarak yerel uygulamalar oluşturmak için bir çerçevedir.

  • Yerel uygulama bileşenlerini derler, böylece yerel mobil uygulamalar oluşturmanızı sağlar.

  • Eski uygulamanızı elden geçirmenize gerek yok. Yapmanız gereken tek şey, yeniden yazmak zorunda kalmadan mevcut uygulamanızın koduna React Native UI bileşenleri eklemek.

Reaksiyon js

  • Kullanıcı arabirimleri ve web uygulamaları oluşturmak için hem ön uç web'i hem de bir sunucuda çalıştırmayı destekler.

  • Ayrıca yeniden kullanılabilir UI bileşenleri oluşturmamıza izin verir.

  • React JS'de kod bileşenlerini yeniden kullanabilirsiniz, bu da size çok zaman kazandırır.


0

React.js genellikle React veya ReactJS olarak adlandırılır, UI bileşenlerinin hiyerarşisini oluşturmaktan veya başka bir deyişle UI bileşenlerinin oluşturulmasından sorumlu bir JavaScript kitaplığıdır. Hem ön uç hem de sunucu tarafı için destek sağlar.

Native React, JavaScript kullanarak yerel uygulamalar oluşturmak için bir çerçevedir. Yerel derleme yerel uygulama bileşenlerini derleyerek yerel mobil uygulamalar oluşturmanıza olanak tanır. React JS'de React, web platformu için React DOM'un temel soyutlamasıdır, React Native ile React hala temel soyutlamadır, ancak React Native'dir. Yani sözdizimi ve iş akışı benzer kalır, ancak bileşenler farklıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.