React

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з ReactJS)
Перейти до: навігація, пошук
React
React-icon.svg
Тип бібліотека JavaScript
Розробник Facebook, Instagram та співтовариство
Перший випуск 2013
Стабільний випуск 15.4.0 (16 листопада 2016; 527 днів тому[1])
Версії 16.3.2[2]
Репозиторій github.com/facebook/react
Платформа багатоплатформова
Операційна система крос-платформова програма
Написано на JavaScript
Розмір 128 Кб мінімізована верся
559 Кб версія для розробки
Стан розробки Активний
Ліцензія MIT License
reactjs.com

React(старі назви: React.js, ReactJS) — відкрита JavaScript бібліотека для створення інтерфейсів користувача, яка покликана вирішувати проблеми часткового оновлення вмісту веб-сторінки, з якими стикаються в розробці односторінкових застосунків. Розробляється Facebook, Instagram і спільнотою індивідуальних розробників.[3][4][5]

React дозволяє розробникам створювати великі веб-застосунки, які використовують дані, котрі змінюються з часом, без перезавантаження сторінки. Його мета полягає в тому, щоб бути швидким, простим, масштабованим. React обробляє тільки користувацький інтерфейс у застосунках. Це відповідає видові у шаблоні модель-вид-контролер (MVC), і може бути використане у поєднанні з іншими JavaScript бібліотеками або в великих фреймворках MVC, таких як AngularJS[6]. Він також може бути використаний з React на основі надбудов, щоб піклуватися про частини без користувацького інтерфейсу побудови веб-застосунків.

В даний час React використовують Khan Academy,[7] Netflix,[8] Yahoo,[9] Airbnb,[10] Sony,[11] Atlassian[12] та інші.

Історія[ред.ред. код]

Бібліотеку створено Джорданом Волком (Jordan Walke), програмістом з Facebook. Автор працював над проектом під впливом XHP, фреймворку HTML для PHP.[13] 2011-го року реліз з'явився у новинах Facebook, за рік — у блозі Instagram.[14] Також фреймворк був представлений як проект з відкритим початковим кодом на конференції розробників JSConf US, що проходила у Сполучених Штатах у травні 2013 року. На конференції React.js Conf, влаштовану Фейсбуком у березні 2015-го, проект було представлено як відкрите програмне забезпечення.

Особливості[ред.ред. код]

Одностороння передача даних[ред.ред. код]

Властивості передаються в рендерер компоненту, як властивості html тега. Компонент не може напряму змінювати властивості, що йому передані, але може їх змінювати через callback функції. Такий механізм називають «властивості донизу, події нагору».

Віртуальний DOM[ред.ред. код]

React підтримує віртуальний DOM, а не покладається виключно на DOM браузера. Це дозволяє бібліотеці визначити, які частини DOM змінилися, порівняно (diff) зі збереженою версією віртуального DOM, і таким чином визначити, як найефективніше оновити DOM браузера.[15][16] Таким чином програміст працює зі сторінкою, вважаючи що вона оновлюється вся, але бібліотека самостійно вирішує які компоненти сторінки треба оновити.

JSX[ред.ред. код]

Компоненти React зазвичай написані на JSX.[17] Код написаний на JSX компілюється у виклики методів бібліотеки React. Розробники можуть так само писати на чистому JavaScript. JSX нагадує іншу мову, яку створили у компанії Фейсбук для розширення PHP, XHP.

Не лише рендеринг HTML в браузері[ред.ред. код]

React використовують не лише для рендерингу HTML в браузері. Наприклад, Facebook має динамічні графіки які рендеряться в теги <canvas>,[18] Netflix та PayPal використовують ізоморфне завантаження для рендерингу ідентичного HTML на сервері та клієнті.[19][20]

React Native[ред.ред. код]

React Native представлений компанією Facebook у 2015 році, що застосовує React архітектуру до нативних IOS, Android та UWP додатків.

Історія[ред.ред. код]

У 2012 році Марк Цукерберг зазначив: "Найбільша помилка яку ми зробили як компанія – це надто велика ставка на HTML5 на відміну від нативних додатків ".

Він пообіцяв, що Facebook незабаром запропонує краще рішення для мобільних платформ.

В Facebook Джордан Уоллк знайшов спосіб генерувати елементи інтерфейсу iOS з фонового Javascript потоку. Вони вирішили організувати внутрішній хакатон для вдосконалення цього прототипу, щоб вміти будувати нативні додатки за допомогою цієї технології.

Після кількох місяців розробки, Facebook випустила першу версію для React.js Conf 2015.

Під час технічного обговорення Крістофер Чедо пояснив, що Facebook вже використовував React Native для їх Group App та Ads Manager App.

Принципи роботи[ред.ред. код]

Принципи роботи React Native в основному такі ж, як ReactJS, за винятком того, що він не маніпулює DOM через VirtualDom.

Він працює у фоновому процесі (який інтерпретує Javascript код написаний розробниками) безпосередньо на кінцевому пристрої і спілкується з нативною платформою. Очевидно, що Facebook виправив помилку, про яку Марк Цукерберг згадував в 2012 році. React Native взагалі не покладається на HTML, все написано на Javascript і залежить від нативних SDK.

Посилання[ред.ред. код]