Яка різниця між React Native та React?


729

Я почав вивчати Реагу з цікавості і хотів дізнатися різницю між React та React Native - хоча не міг знайти задовільну відповідь за допомогою Google. Здається, React і React Native мають однаковий формат. Чи мають вони зовсім інший синтаксис?


61
Усі дають відповідь зі словника, коли більшість людей, які задають це питання, просто хочуть знати, наскільки вони взаємозамінні: наскільки легко перенести свій код React на React Native? Вам потрібно буде переписати передню частину веб-програми в інший код React, якщо ви хочете його на iPad? Наскільки різні?
Лоуренс Веру

9
Які основні відмінності між ReactJS та React-Native? посилання тут medium.com/@alexmngn/…
core114

14
Коротка відповідь полягає в тому, що реактивна програма створює мобільні додатки для iOS, Android та Windows Mobile, які ви можете компілювати та розміщувати в магазинах додатків, щоб користувачі могли встановити їх. Reactjs - це створення веб-сторінок для використання у веб-браузері. Обидва використовують багаторазові компоненти, але синтаксис, який ви використовуєте для візуалізації елементів у компонентах (використовуючи JSX), відрізняється. Реагувати JSX робить HTML-подібні компоненти , як <h1>, <p>і т.д. Де реагують рідної робить власні компоненти вигляд програми , як <View>, <Text>, <Image>, <ScrollView>, так що ви не можете безпосередньо повторно використовувати ваш UI код компонента , якщо ви не переробляють / замінити всі елементи.
Іра Герман

Відповіді:


772

ReactJS - це бібліотека JavaScript, яка підтримує як інтерфейс, так і працює на сервері, для створення інтерфейсів користувача та веб-додатків.

React Native - це мобільна рамка, яка компілює до натільних компонентів додатків, що дозволяє створювати в JavaScript JavaScript власних мобільних додатків для різних платформ (iOS, Android та Windows Mobile), що дозволяє використовувати ReactJS для створення ваших компонентів та реалізує ReactJS капюшон.

Обидва дотримуються розширення синтаксису JSX до JavaScript.

Обидва є відкритим джерелом у Facebook.


3
@LemuelAdane Ось повідомлення з Facebook про те, як це робиться: facebook.github.io/react/docs/environments.html . Ось приємний вступ, який розповідає про те, як це здійснити: maketea.co.uk/2014/06/30/…
Надер Дабіт

61
Отже, якщо я будую додаток у рідній реакції, чи можна будь-яке / все це повторно використовуватись у reactJS чи навпаки?
Троя Косентіно

12
@MelAdane Плакат, ймовірно, посилається на використання бібліотек ReactJS на NodeJS для створення попередньо вбудованих файлів (використовуючи щось на зразок Webpack), які потім можуть бути подані клієнту як статичні файли.
Пінеда

9
Якщо я будую веб-версію за допомогою react, чи може той самий HTML / JS-код використовуватись у мобільному додатку, використовуючи рідну реакцію?
Раві Маніяр

14
@RaviManiyar НІ, ви можете повторно використовувати свою бізнес-логіку, але не можете повторно використовувати свої коди ui. React Native використовує вбудовані компоненти інтерфейсу, тоді як React.JS використовує для Інтернету, а інтерфейс користувача створений за допомогою html-компонентів та css
Chromonav

291

Ось проект React .

У Facebook вони винайшли React, щоб JavaScript міг швидше маніпулювати веб-сайтом DOM за допомогою віртуальної моделі DOM.

Повне оновлення DOM повільніше порівняно з моделлю React virtual-dom , яка оновлює лише частини сторінки (читати: часткове оновлення).

Як ви можете зрозуміти з цього відео , Facebook не вигадав React, оскільки відразу зрозуміли, що часткове оновлення буде швидше, ніж звичайне. Спочатку їм був потрібен спосіб скоротити час на відновлення додатків Facebook, і, на щастя, це призвело до часткового оновлення DOM.

Реакція рідного - це лише наслідок Реагування. Це платформа для створення власних додатків за допомогою JavaScript.

Перед початком React native вам потрібно було знати Java для Android або Objective-C для iPhone та iPad, щоб створити власні програми.

За допомогою React Native можна імітувати поведінку нативного додатку в JavaScript, і в кінці ви отримаєте конкретний код платформи як вихід. Ви навіть можете змішати нативний код із JavaScript, якщо вам потрібно додатково оптимізувати додаток.

Як зазначила Олівія Бішоп у відео , 85% базового коду React можна поділити між платформами. Це будуть компоненти, які програми, як правило, використовують, і загальна логіка.

15% коду залежить від платформи. Специфічний для платформи JavaScript - це те, що надає платформі смак (і робить різницю у досвіді).

Класна річ у цьому специфічному для платформи коді - він уже написаний, тому вам просто потрібно ним користуватися.


9
Мені особисто більше подобається ця відповідь, оскільки вона детальніше пропонує посилання на подальші пояснення.
Крісті Потлог

7
Мені подобається і ця відповідь. "До React Native ..." Не забувайте, що є і Xamarin. ;)
Завантажити Asp

117

Реагуйте:

React - це декларативна, ефективна та гнучка бібліотека JavaScript для створення інтерфейсів користувача.

Реагуйте рідними:

React Native дозволяє створювати мобільні додатки, використовуючи лише JavaScript. Він використовує той же дизайн, що і React, що дозволяє скласти багатий мобільний інтерфейс із декларативних компонентів.
Завдяки React Native ви не створюєте "мобільний веб-додаток", "додаток HTML5" або "гібридний додаток". Ви створюєте справжній мобільний додаток, який не можна відрізняти від додатка, створеного за допомогою Objective-C або Java. React Native використовує ті самі основні будівельні блоки інтерфейсу, що і звичайні програми для iOS та Android. Ви просто склали ці будівельні блоки за допомогою JavaScript та React.
React Native дозволяє швидше створювати додаток. Замість перекомпіляції можна миттєво перезавантажити додаток. Завдяки гарячому перезавантаженню ви навіть можете запустити новий код, зберігаючи стан програми. Спробуйте - це магічний досвід.
React Native плавно поєднується з компонентами, написаними на Objective-C, Java або Swift. Якщо вам потрібно оптимізувати декілька аспектів вашої програми, просто перейти на нативний код. Також легко створити частину свого додатка в React Native, а частину програми безпосередньо за допомогою рідного коду - саме так працює програма Facebook.

Таким чином, React - це бібліотека інтерфейсу користувача для перегляду вашого веб-програми, використовуючи JavaScript та JSX , React native - це додаткова бібліотека у верхній частині React, щоб створити нативну програму для пристроїв iOSта Androidпристроїв.

Зразок коду реагування :

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


Зразок коду реактивного коду:

import React, { Component } from 'react';
import { Text, View } from 'react-native';

class WhyReactNativeIsSoGreat extends Component {
  render() {
    return (
      <View>
        <Text>
          If you like React on the web, you'll like React Native.
        </Text>
        <Text>
          You just use native components like 'View' and 'Text',
          instead of web components like 'div' and 'span'.
        </Text>
      </View>
    );
  }
}

Для отримання додаткової інформації про React відвідайте їх офіційний веб-сайт, створений командою facebook:

https://facebook.github.io/react

Для отримання додаткової інформації про React Native відвідайте рідний веб-сайт React нижче:

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


40
Ваші зразки коду є корисними, але було б ТАК набагато краще бачити компонент SAME, реалізований у кожному
фреймі

8
Ваша відповідь має бути прийнятою, я прийшов сюди, щоб побачити, чи мають React і React Native однакову архітектуру і чи код виглядає однаково, не для визначень обох бібліотек.
Gherbi Hicham

1
Хочу додати, що якби ви перейшли на рідну мову, у вас було б буквально лише два рядки коду, один з яких встановлюється автоматично для розетки (залежно). Так, вам потрібен формат дати, але все одно лише один рядок. Мені важко читати "Це те, чому реагувати приголомшливо", коли він буквально має в 20 разів більше рядків коду, ніж фактичні рідні програми. З цього приводу я дуже ціную вашу відповідь і навіть насолоджуюся React в Інтернеті за рішення, які вона пропонує у домені, в якому вона чудова. Мені просто хочеться, щоб більше людей знали, як реалізувати її схеми без цього, щоб порівняти, коли це корисно проти кошмару на технічному обслуговуванні
Stephen J

58

ReactJS - це основа для побудови ієрархії компонентів інтерфейсу. Кожен компонент має стан та реквізити. Дані надходять від верхньої частини до компонентів низького рівня через реквізити. Стан оновлюється в компоненті верхнього рівня за допомогою обробників подій.

React native використовує рамки React для створення компонентів для мобільних додатків. React native забезпечує базовий набір компонентів як для iOS, так і для Android платформ. Деякі компоненти в React Native - це Навігатор, TabBar, Текст, TextInput, Перегляд, ScrollView. Ці компоненти використовують вбудовані компоненти iOS UIKit та Android UI. Реактивний рідний також дозволяє NativeModules, де код, написаний в ObjectiveC для iOS та Java для Android, може використовуватися в JavaScript.


41

По-перше, подібність: І React & React Native (RN) були розроблені для створення гнучких інтерфейсів користувача. Ці рамки мають багато переваг, але найголовнішим вилученням є те, що вони створені для розвитку інтерфейсу. Facebook розробив RN через кілька років після React.

Реагуйте: Facebook розробив цю рамку так, щоб схожий на те, щоб написати ваш JavaScript всередині вашого HTML / XML, тому теги називаються " JSX " (JavaScript XML) і схожі на звичні HTML-подібні теги, такі як <div>або <p>. Ознакою React є теги з великої літери, які позначають користувацький компонент, такий як <MyFancyNavbar />, який також існує в RN. Однак React використовує DOM . DOM існує для HTML, тому React використовується для веб-розробки.

React Native: RN не використовує HTML, а тому не використовується для веб-розробки. Він використовується для ... практично всього іншого! Мобільна розробка (як iOS та Android), смарт-пристрої (наприклад, годинник, телевізор), доповнена реальність тощо. Оскільки RN не має взаємодії з DOM, замість того, щоб використовувати один і той же тип тегів HTML, що використовується в React, він використовує власні теги, які потім компілюються на інші мови. Наприклад, замість <div>тегів розробники RN використовують вбудований <View>тег RN , який компілюється в інший нативний код під кришкою (наприклад, android.viewна Android; і UIViewна iOS).

Якщо коротко: вони дуже схожі (для розробки інтерфейсу), але використовуються для різних середовищ.


Хороша відповідь. Ви можете трохи більше розробити і додати більше балів. Було б добре людям, які читають.
сарат

1
поставити цю відповідь вгорі
JerryGoyal

38
  1. React-Native - це основа для розробки додатків для Android та iOS, яка поділяє 80% - 90% коду Javascript.

Хоча React.js є батьківською бібліотекою Javascript для розробки веб-додатків.

  1. У той час як ви використовуєте тег , як <View>, <Text>дуже часто в React-Native, React.js використовує веб - HTML - тег , наприклад <div> <h1> <h2>, які тільки синоніми в словнику веба / мобільних розробки.

  2. Для React.js вам потрібен DOM для візуального відображення html-тегів, а для мобільних додатків: React-Native використовує AppRegistry для реєстрації вашого додатка.

Я сподіваюся, що це просте пояснення швидких розбіжностей / подібностей у React.js та React-Native.


25

Ми не можемо їх точно порівняти. Існують відмінності у випадку використання .

(Оновлення 2018 року)


ReactJS

Основна увага в React - веб-розробка.

    • Віртуальний DOM React швидше, ніж звичайна модель повного оновлення , оскільки віртуальний DOM оновлює лише частини сторінки.
    • Ви можете повторно використовувати компоненти коду в React, заощаджуючи багато часу. (Можна і в React Native.)
    • Як бізнес: Повна рендеринга ваших сторінок від сервера до браузера покращить SEO вашого веб-додатка .
    • Це покращує швидкість налагодження , полегшуючи життя розробника.
    • Ви можете використовувати гібридні розробки мобільних додатків, наприклад Кордова або Ionic, для створення мобільних додатків за допомогою React, але ефективніше створювати мобільні додатки з React Native з багатьох точок.

Реагуйте рідні

Розширення React , закладене в мобільний розвиток.

    • Основна увага приділяється мобільним інтерфейсам користувача .
    • iOS та Android охоплені.
    • Компоненти та модулі інтерфейсу інтерфейсу React для багаторазового використання дозволяють гібридним програмам відображатись на самому світі.
    • Не потрібно ремонтувати старий додаток. Все, що вам потрібно зробити - це додати компоненти компонентів інтерфейсу React Native до коду наявної програми , не потребуючи перезапису.
    • Не використовує HTML для відображення програми . Надає альтернативні компоненти, які працюють аналогічно, тому їх не важко буде зрозуміти.
    • Оскільки ваш код не відображається на HTML-сторінці, це також означає, що ви не зможете повторно використовувати будь-які бібліотеки, які раніше використовувались з React, що надає будь-який HTML, SVG або Canvas.
    • React Native не створений з веб-елементів і не може бути стильований таким же чином. До побачення анімації CSS!

Сподіваюся, я допомогла тобі :)


17

У простому сенсі React і React native дотримується тих же принципів дизайну, за винятком проектування користувальницького інтерфейсу.

  1. React native має окремий набір тегів для визначення користувальницького інтерфейсу для мобільних пристроїв, але обидва використовують JSX для визначення компонентів.
  2. Основний намір обох систем полягає в розробці повторно використовуваних UI-компонентів і зменшенні зусиль з розробки за допомогою його композицій.
  3. Якщо правильно планувати та структурувати код, ви можете використовувати ту саму логіку бізнесу для мобільних пристроїв та Інтернету

У будь-якому випадку це відмінна бібліотека для побудови користувальницького інтерфейсу для мобільних пристроїв та Інтернету.


16

React - це декларативна, ефективна та гнучка бібліотека JavaScript для створення користувальницьких інтерфейсів. Ваші компоненти повідомляють React, що ви хочете візуалізувати - тоді React буде ефективно оновлювати та надавати лише потрібні компоненти, коли ваші дані змінюватимуться. Тут ShoppingList - це клас компонентів React або тип компонента React.

Додаток React Native - це справжній мобільний додаток. Завдяки React Native ви не створюєте "мобільний веб-додаток", "додаток HTML5" або "гібридний додаток". Ви створюєте справжній мобільний додаток, який не можна відрізняти від додатка, створеного за допомогою Objective-C або Java. React Native використовує ті самі основні будівельні блоки інтерфейсу, що і звичайні програми для iOS та Android.

Більше інформації


13

ReactJS - це основний каркас, призначений для побудови компонента, ізольованого на основі реактивної структури, ви можете вважати це як V від MVC, хоча я хотів би сказати, що реагування викликає інше відчуття, особливо якщо ви менш знайомі з реактивною концепцією .

ReactNative - це ще один шар, який повинен мати набір компонентів для платформ Android та iOS, які є загальними. Таким чином, код виглядає в основному так само, як ReactJS, оскільки це ReactJS, але він завантажується в мобільних платформах. Ви також можете з’єднати більш складний та відносний платформенний API з Java / Objective-C / Swift залежно від ОС та використовувати його в React.


13

Реагуйте рідні розроблений в основному на JavaScript, а це означає, що більшість коду, який потрібно розпочати, можна ділити на будь-яких платформах. React Native відображатиметься за допомогою нативних компонентів. Програми React Native розробляються мовою, потрібною платформою, на яку вона орієнтована, Objective-C або Swift для iOS, Java для Android тощо. Написаний код не поділяється на будь-яких платформах, і їх поведінка відрізняється. Вони мають прямий доступ до всіх функцій, пропонованих платформою без будь-яких обмежень.

React - це бібліотека JavaScript з відкритим кодом, розроблена Facebook для побудови інтерфейсів користувача. Він використовується для обробки шару перегляду для веб- і мобільних додатків. ReactJS використовується для створення багаторазових компонентів користувальницького інтерфейсу. На даний момент це одна з найпопулярніших бібліотек JavaScript у цьому полі та має потужну основу та велике співтовариство позаду нього. Якщо ви дізнаєтесь ReactJS, вам потрібно мати знання JavaScript, HTML5 та CSS.


12

React є базовою абстракцією React Native та React DOM , тому якщо ви будете працювати з React Native, вам також знадобиться React ... те саме з Інтернетом, але замість React Native вам знадобиться React DOM.

Оскільки React є базовою абстракцією, загальний синтаксис і робочий процес є однаковими, але компоненти, які ви б використовували, дуже різні, тому вам потрібно буде вивчити ці відмінності, це врівень з React, так званим мото, який є "Вчіться раз писати куди завгодно", тому що якщо ви знаєте React (базова абстракція), ви можете просто вивчити відмінності між платформою, не вивчаючи іншої мови програмування, синтаксису та робочого процесу.


11

React-Native - це фреймворк, де ReactJS - це бібліотека javascript, яку ви можете використовувати для свого веб-сайту.

React-native забезпечує основні компоненти за замовчуванням (зображення, текст), де React надає купу компонентів і змушує їх працювати разом.


10

React Js - це бібліотека Javascript, де ви можете розробляти та запускати швидші веб-програми за допомогою React.

React Native дозволяє створювати мобільні додатки, використовуючи лише JavaScript, він використовується для розробки мобільних додатків. більше інформації тут https://facebook.github.io/react-native/docs/getting-started.html


9

Що стосується життєвого циклу компонентів та всіх інших дзвіночків, то це здебільшого те саме.

Різниця здебільшого полягає у використаній розмітці JSX. React використовує той, що нагадує html. Інша - це розмітка, яка використовується натиском реакції для відображення подання.


8

React Native призначений для мобільних додатків, тоді як React - для веб-сайтів (front-end). Обидва є рамками, винайденими Facebook. React Native - це кросова платформа, яка розробляє рамки, тобто можна написати майже той самий код для IOS та Android, і він буде працювати. Я особисто знаю набагато більше про React Native, тому залишу це на цьому.


8

React Js маніпулює HTML Dom. Але React native маніпулює мобільним (iOS / android) нативним компонентом інтерфейсу.


7

ReactJS - це бібліотека javascript, яка використовується для створення веб-інтерфейсів. Вам знадобиться такий постачальник, як webpack, і спробуйте встановити модулі, які вам знадобляться для створення вашого веб-сайту.

Реагуйте рідні - це javascript-фреймворк, і він постачається з усім необхідним для написання багатоплатформних додатків (наприклад, iOS або Android). Вам потрібно буде встановити xcode та android studio для створення та розгортання програми.

На відміну від ReactJS, React-Native не використовує HTML, але подібні компоненти, які ви можете використовувати через ios та android для створення свого додатка. Ці компоненти використовують реальні натільні компоненти для створення додатків ios та android. Завдяки цьому програми React-Native відчувають себе реально на відміну від інших гібридних платформ розвитку. Компоненти також збільшують повторне використання коду, оскільки вам не потрібно знову створювати той самий інтерфейс користувача на ios та android.


6

Простіше кажучи, ReactJS - це батьківська бібліотека, яка повертає щось для відображення відповідно до хост-середовища (браузер, мобільний, сервер, робочий стіл ... тощо). Крім рендерінгу, він також пропонує інші методи, наприклад гачки життєвого циклу .. тощо.

У браузері він використовує іншу бібліотеку react-dom для візуалізації елементів DOM. Для мобільних пристроїв він використовує компоненти React-Native для візуалізації власних компонентів інтерфейсу користувача (платформи IOS та Android). ТОМУ,

react + react-dom = веб-розробка

react + react-native = мобільний розвиток



3

Ось відмінності, про які я знаю:

  1. Вони мають різні теги html: React Native використовується для обробки тексту, а не для React.
  2. React Native використовує компоненти Touch, замість звичайного елемента кнопки.
  3. React Native має компоненти ScrollView та FlatList для візуалізації списків.
  4. React Native використовує AsyncStorage, тоді як React використовує локальне сховище.
  5. У маршрутизаторах React Native функціонують як стек, тоді як у React ми використовуємо компоненти маршруту для навігації по карті.

3

Підсумовуючи: React.js для веб-розробки, тоді як React-Native для мобільних додатків


3

Реактивні проти Реактивні Рідні

ReactJS

  • React використовується для створення веб-сайтів, веб-додатків, SPA-програм тощо.
  • React - бібліотека Javascript, що використовується для створення ієрархії інтерфейсу користувача.
  • Він відповідає за візуалізацію компонентів інтерфейсу, вважається V частиною MVC фрейму.
  • Віртуальний DOM React швидше, ніж звичайна модель повного оновлення, оскільки віртуальний DOM оновлює лише частини сторінки, тим самим скорочуючи час оновлення сторінки.
  • React використовує компоненти як основну одиницю користувальницького інтерфейсу, які можна використовувати повторно, це економить час кодування. Простий і легкий у навчанні.

Реагуйте рідні

  • React Native - це рамка, яка використовується для створення кросплатформних Native додатків. Це означає, що ви можете створювати власні додатки, і той самий додаток працюватиме на Android та ios.
  • React native має всі переваги ReactJS
  • React native дозволяє розробникам створювати власні програми у веб-стилі.
  • Передній розробник може легко стати мобільним розробником.

2

React Js - React JS - це фронтальна бібліотека javascript, це велика бібліотека, а не рамка

  • Він дотримується підходу, заснованого на компонентах, який допомагає будувати
    багаторазові компоненти інтерфейсу користувача
    • Він використовується для розробки складного та інтерактивного веб-та мобільного інтерфейсу
    • Незважаючи на те, що він був відкритим джерелом лише у 2015 році, він має одну з найбільших громад, яка його підтримує.

ReactNative - React Native - це програма мобільних додатків з відкритим кодом.


2

Трохи запізнюємось на вечірку, але ось більш вичерпна відповідь із прикладами:

Реагуйте

React - це бібліотека інтерфейсу, що базується на компонентах, яка використовує "тінь DOM" для ефективного оновлення DOM із тим, що змінилося, замість того, щоб перебудувати все дерево DOM для кожної зміни. Спочатку він був побудований для веб-додатків, але тепер може використовуватися і для мобільних пристроїв, і для 3D / vr.

Компоненти між React і React Native не можуть бути замінені, оскільки React Native відображає власні мобільні елементи інтерфейсу, але бізнес-логіку та код, не пов’язаний з візуалізацією, можуть бути використані повторно.

ReactDOM

Спочатку був включений до бібліотеки React, але був роз'єднаний, коли React використовувався для інших платформ, крім простого Інтернету. Він служить точкою входу до DOM і використовується в союзі з React.

Приклад:

import React from 'react';
import ReactDOM from 'react-dom';

class App extends Component {
    state = {
        data: [],
    }

    componentDidMount() {
        const data = API.getData(); // fetch some data
        this.setState({ data })
    }

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

    render() {
        return (
            <div>
                {this.state.data.map((data) => (
                    <p key={data.id}>{data.label}</p>
                ))}
                <button onClick={this.clearData}>
                    Clear list
                </button>
            </div>
        );
    }

}

ReactDOM.render(App, document.getElementById('app'));

Реагуйте рідні

React Native - це платформа для мобільних платформ, яка використовує React і спілкується між Javascript та його рідним партнером через "міст". Завдяки цьому, багато структури структури інтерфейсу повинні відрізнятися при використанні React Native. Наприклад: створюючи список, ви зіткнетесь з основними проблемами продуктивності, якщо ви спробуєте використати mapдля складання списку замість React Native'sFlatList . React Native можна використовувати для створення мобільних додатків IOS / Android, а також для смарт-годинників та телевізорів.

Експо

Expo - це найкраще, коли запускається новий додаток React Native.

Expo - це рамка та платформа для універсальних додатків React. Це набір інструментів і сервісів, побудованих навколо React Native та нативних платформ, які допомагають вам розробляти, створювати, розгортати та швидко ітератувати в додатках для iOS, Android та веб-сайтів.

Примітка: Під час використання Expo ви можете використовувати лише Native Api, які вони надають. Усі додаткові бібліотеки, які ви включаєте, повинні мати чистий JavaScript або вам потрібно буде вийняти експо.

Аналогічний приклад використання React Native:

import React, { Component } from 'react';
import { Flatlist, View, Text, StyleSheet } from 'react-native';

export default class App extends Component {
    state = {
        data: [],
    }

    componentDidMount() {
        const data = API.getData(); // fetch some data
        this.setState({ data })
    }

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

    render() {
        return (
            <View style={styles.container}>
                <FlatList
                    data={this.state.data}
                    renderItem={({ item }) => <Text key={item.id}>{item.label}</Text>}
                />
                <Button title="Clear list" onPress={this.clearData}></Button>
            </View>
        );
    }

}

const styles = StyleSheet.create({
    container: {
        flex: 1,
    },
});

Відмінності:

  • Зауважте, що все поза візуалізації може залишатися незмінним, ось чому логічний код бізнес-логіки / життєвого циклу можна повторно використовувати в React і React Native
  • У React Native всі компоненти потрібно імпортувати з рідної реакції чи іншої бібліотеки інтерфейсу користувача
  • Використання певних API, які відображають на рідні компоненти, як правило, буде більш ефективним, ніж намагатися обробити все на стороні javascript. колишній відображення компонентів для складання списку проти використання плоского списку
  • Тонкі відмінності: такі речі, як onClickперетворюються наonPress , React Native використовує таблиці стилів для більш стильного визначення стилів, а React Native використовує flexbox як структуру макета за замовчуванням, щоб тримати реакцію на речі.
  • Оскільки в React Native не існує традиційного "DOM", лише чисті бібліотеки javascript можуть використовуватися як у React, так і React Native

React360

Варто також зазначити, що React також можна використовувати для розробки 3D / VR додатків. Структурна складова дуже схожа на React Native. https://facebook.github.io/react-360/


1

reactjs використовує react-dom не браузер dom, тоді як react native використовує віртуальний dom, але обидва використовують один і той же синтаксис, тобто якщо ви можете використовувати reactjs, то ви можете використовувати native reactjs, оскільки більшість бібліотек, які ви використовуєте в reactjs, доступні в рідній реакції як, наприклад, ваша навігаційна реакція та інші загальні бібліотеки, які мають спільне.


Коротка відповідь полягає в тому, що реактивна програма створює мобільні додатки для iOS, Android та Windows Mobile, які ви можете компілювати та розміщувати в магазинах додатків, щоб користувачі могли встановити їх. Reactjs - це створення веб-сторінок для використання у веб-браузері. Обидва використовують багаторазові компоненти, але синтаксис, який ви використовуєте для візуалізації елементів у компонентах (використовуючи JSX), відрізняється. Реагувати JSX робить HTML-подібні компоненти , такі як <h1>, <p>і т.д. Де реагувати рідні надає нативні компоненти виду додатки , як <View>і<Text> .
Іра Герман

1

У відповідь на коментар від @poshest вище, ось React Native версія Clock-коду, раніше розміщена в React (вибачте, я не зміг прокоментувати цей розділ безпосередньо, інакше я б додав код туди):

Зразок коду реактивного коду

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

Зверніть увагу , що стиль повністю мій вибір і не прагне безпосередньо копіювати зовнішній <h1>і <h2>теги , які використовуються в React код.


1

Деякі відмінності полягають у наступному:
1- React-Native - це рамка, яка використовується для створення мобільних додатків, де ReactJS - це бібліотека javascript, яку ви можете використовувати для свого веб-сайту.
2- React-Native не використовує HTML для візуалізації програми, а React використовує.
3- React-Native використовується для розробки лише мобільного додатка, а React - для веб-сайту та мобільних пристроїв.


0

Реагуйте рідні

  • Він є основою для створення нативних програм за допомогою JavaScript.

  • Вона компілюється до нативних компонентів додатків, завдяки чому ви можете створювати власні мобільні додатки.

  • Не потрібно ремонтувати старий додаток. Все, що вам потрібно зробити - це додати компоненти компонентів інтерфейсу React Native до коду наявної програми, не потребуючи перезапису.

Реагуйте js

  • Він підтримує як інтерфейс, так і працює на сервері, для побудови користувальницьких інтерфейсів та веб-додатків.

  • Це також дозволяє нам створювати багаторазові компоненти інтерфейсу користувача.

  • Ви можете повторно використовувати компоненти коду в React JS, заощаджуючи багато часу.


0

React.js часто називають React або ReactJS - це бібліотека JavaScript, відповідальна за створення ієрархії компонентів інтерфейсу або іншими словами, відповідальна за візуалізацію компонентів інтерфейсу. Він надає підтримку як для фронта, так і на стороні сервера.

React Native - це основа для створення нативних програм за допомогою JavaScript. React Native компілює до нативних компонентів додатків, завдяки чому ви можете створювати власні мобільні додатки. У React JS React є базовою абстракцією React DOM для веб-платформи, тоді як у React Native, React все ще є базовою абстракцією, але React Native. Тож синтаксис і робочий процес залишаються схожими, але компоненти різні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.