React (старі назви: React.js, ReactJS) — відкрита JavaScript бібліотека для створення інтерфейсів користувача, яка покликана вирішувати проблеми часткового оновлення вмісту вебсторінки, з якими стикаються в розробці односторінкових застосунків. Розробляється Meta (раніше Facebook) і спільнотою індивідуальних розробників.
Тип | бібліотека JavaScript |
---|---|
Автор | Meta Platforms |
Розробники | Meta та спільнота |
Перший випуск | 2013 |
Стабільний випуск | 18.2.0 (14 червня 2022 ) |
Версії | 18.3.1 (26 квітня 2024)[2] |
Платформа | багатоплатформова |
Операційна система | кросплатформова програма |
Мова програмування | JavaScript |
Розмір | 128 Кб мінімізована версія 559 Кб версія для розробки |
Стан розробки | Активний |
Ліцензія | MIT License |
Онлайн-документація | reactjs.org/docs/getting-started.html(англ.) ru.reactjs.org/docs/getting-started.html(рос.) ar.reactjs.org/docs/getting-started.html |
Репозиторій | github.com/facebook/react |
Вебсайт | react.dev, uk.react.dev (українська версія) |
|
React дозволяє розробникам створювати великі вебзастосунки, які використовують дані, котрі змінюються з часом, без перезавантаження сторінки. Його мета полягає в тому, щоб бути швидким, простим, масштабованим. React обробляє тільки користувацький інтерфейс у застосунках. Це відповідає видові у шаблоні модель-вид-контролер (MVC), і може бути використане у поєднанні з іншими JavaScript бібліотеками або в великих фреймворках MVC, таких як AngularJS. Він також може бути використаний з React на основі надбудов, щоб піклуватися про частини без користувацького інтерфейсу побудови вебзастосунків. Як бібліотеку інтерфейсу користувача React найчастіше використовують разом з іншими бібліотеками, такими як Redux.
В даний час React використовують Khan Academy, Netflix, Yahoo, Airbnb, Sony, Atlassian та інші.
Історія
Бібліотеку створено Джорданом Волком (Jordan Walke), програмістом з Facebook. Автор працював над проектом під впливом , фреймворку HTML для PHP. 2011-го року реліз з'явився у новинах Facebook, за рік — у блозі Instagram. Також фреймворк був представлений як проект з відкритим початковим кодом на конференції розробників JSConf US, що проходила у Сполучених Штатах у травні 2013 року. На конференції React.js Conf, влаштовану Фейсбуком у березні 2015-го, проект було представлено як відкрите програмне забезпечення.
Особливості
Одностороння передача даних
Властивості передаються в рендерер компоненту, як властивості html тегу. Компонент не може напряму змінювати властивості, що йому передані, але може їх змінювати через callback функції. Такий механізм називають «властивості донизу, події нагору».
Віртуальний DOM
React підтримує віртуальний DOM, а не покладається виключно на DOM браузера. Це дозволяє бібліотеці визначити, які частини DOM змінилися, порівняно (diff) зі збереженою версією віртуального DOM, і таким чином визначити, як найефективніше оновити DOM браузера. Таким чином програміст працює зі сторінкою, вважаючи що вона оновлюється вся, але бібліотека самостійно вирішує які компоненти сторінки треба оновити.
JSX
Компоненти React зазвичай написані на JSX. Код написаний на JSX компілюється у виклики методів бібліотеки React. Розробники можуть так само писати на чистому JavaScript. JSX нагадує іншу мову, яку створили у компанії Фейсбук для розширення PHP, .
Не лише рендеринг HTML в браузері
React використовують не лише для рендерингу HTML в браузері. Наприклад, Facebook має динамічні графіки які рендеряться в теги <canvas>, Netflix та PayPal використовують ізоморфне завантаження для рендерингу ідентичного HTML на сервері та клієнті.
Методи життєвого циклу
Методи життєвого циклу — це різні методи, які вбудовуються за допомогою ReactJS. Вони дозволяють розробнику обробляти дані в різних точках життєвого циклу програми React. Наприклад:
- shouldComponentUpdate — це метод життєвого циклу, який каже Javascript оновити компонент, використовуючи логічні змінні.
- componentWillMount — це метод життєвого циклу, який каже Javascript налаштувати певні дані перед монтуванням компонентів (вставлення у віртуальний DOM).
- componentDidMount — це метод життєвого циклу, подібний до компонента WillMount, за винятком того, що він працює після методу render, і може використовуватися для додавання JSON-даних, а також для визначення властивостей та станів.
- render є найважливішим методом життєвого циклу, необхідним у будь-якому компоненті. Метод render — це те, що з'єднується з JSX і відображати власний JSX.
Вкладені елементи
Кілька елементів на одному рівні повинні бути загорнутими в один елемент контейнера, наприклад елемент <div>, або повернутий як масив.
Атрибути
JSX надає ряд атрибутів елементів, призначених для відображення тих, що надаються у форматі HTML. Користувацькі атрибути також можуть бути передані компоненту. Всі атрибути будуть отримані компонентом як реквізит.
Вирази JavaScript
Вирази JavaScript можна використовувати в JSX з фігурними дужками {}:
<h1> {10 + 1} </ h1>
Приклад, наведений вище, відображатиметься так:
<h1>11</h1>
Умовні вирази
Вираз If–else не можуть бути використані всередині JSX, але замість них можуть використовуватися умовні вирази. У прикладі нижче буде показано
{ i === 1 ? 'true' : 'false' }
як рядок 'true', оскільки i дорівнює 1.
class App extends React.Component { render() { const i = 1; return ( <div> <h1>{ i === 1 ? 'true' : 'false' }</h1> </div> ); } }
Функції та JSX можна використовувати в умовних виразах:
class App extends React.Component { render() { const sections = [1, 2, 3]; return ( <div> { sections.length > 0 ? sections.map(n => <div>Section {n}</div>) : null } </div> ); } }
Код, написаний у JSX, потребує перетворення за допомогою такого інструменту, як Babel, для того, щоб його могли зрозуміти веббраузери. Ця обробка, як правило, виконується під час процесу збірки, перш ніж програма буде запущена.
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.
18 квітня 2017 року Facebook представив React Fiber — новий основний алгоритм бібліотеки React для створення користувацьких інтерфейсів. React Fiber стане основою для будь-яких подальших вдосконалень та розвитку функцій системи React.
Принципи роботи
Принципи роботи React Native в основному такі ж, як ReactJS, за винятком того, що він не маніпулює DOM через VirtualDom.
Він працює у фоновому процесі (який інтерпретує Javascript код написаний розробниками) безпосередньо на кінцевому пристрої і спілкується з нативною платформою. Очевидно, що Facebook виправив помилку, про яку Марк Цукерберг згадував 2012 року. React Native взагалі не покладається на HTML, все написано на Javascript і залежить від нативних SDK.
Основне використання
Нижче наведено початковий приклад реалізації використання React в HTML з JSX та JavaScript.
<div id="myReactApp"></div> <script type="text/babel"> class Greeter extends React.Component { render() { return <h1>{this.props.greeting}</h1> } } ReactDOM.render(<Greeter greeting="Hello World!" />, document.getElementById('myReactApp')); </script>
Клас Greeter — компонент React, який приймає властивість привітання. Метод ReactDOM.render створює екземпляр компонента Greeter, встановлює властивість привітання для «Hello World» та вставляє виражений компонент у вигляді дочірнього елемента до елементу DOM з id = myReactApp. Якщо відобразити в веббраузері, то результат буде:
<div id="myReactApp"> <h1>Hello World!</h1> </div>
Загальні ідіоми
React не намагається надати повну «схему додатків». Він безпосередньо спрямований на побудову користувацьких інтерфейсів, і тому не включає в себе безліч інструментів, які деякі розробники вважають необхідними для створення програми. Це дозволяє вибрати будь-які бібліотеки, які розробник вважає за краще виконувати, щоб виконати певних завдань, таких як здійснення доступу до мережі або локальне зберігання даних.
Використання архітектури Flux
Для підтримки концепції React щодо одностороннього потоку даних, архітектура Flux являє собою альтернативу популярній архітектурі Model-view-controller. Flux — це дії, які надсилаються через центральний диспетчер до сховища, а зміни з сховища надсилають назад до перегляду. У використанні разом з React, це поширення здійснюється через компоненти властивостей.
Компонент React під архітектурою Flux не повинен безпосередньо змінювати будь-які реквізити, передані йому, але повинен передати функції зворотного виклику, що створюють дії, які відправляє диспетчер для модифікації сховища. Сховище (яке можна розглядати як модель) може змінюватися у відповідь на дії, отримані від диспетчера.
Цей шаблон іноді виражається як «properties flow down, actions flow up». Багато реалізацій Flux створено з моменту його створення, мабуть, найбільш відомим є Redux, який має одне сховище, яке часто називають single source of truth (це практика структурування інформаційних моделей та пов'язаних схем даних, так що кожен елемент даних зберігається рівно один раз).
Ліцензування
Початковий публічний реліз React відбувся в травні 2013 року використовував стандартний Apache License 2.0. У жовтні 2014 року React 0.12.0 замінив його ліцензією BSD на 3 пункти та додав окремий текстовий файл PATENTS, який дозволяє використовувати будь-які патенти Facebook, пов'язані з програмним забезпеченням:
"Ліцензія, надана цим договором, автоматично і без попередження припиняється для тих, хто подає будь-які претензії (у тому числі шляхом подання будь-яких позовів, заяв чи інших дій), що стосуються: (а) прямого, непрямого чи опосередкованого порушення або спонукання до порушення будь-якого патенту: (і) Facebook або будь-які його дочірні або афілійовані компанії, незалежно від того, чи така претензія пов'язана з програмним забезпеченням; (іі) будь-якою стороною, якщо така вимога виникає повністю або частково з будь-якого програмного забезпечення, продукту чи послуги Facebook або будь-якого з її дочірніх та афілійованих осіб, незалежно від того, чи така претензія пов'язана з програмним забезпеченням, або (ііі) будь-якою стороною, що стосується програмного забезпечення, або (б) що будь-яке право на будь-яку претензію на патент Facebook недійсне або недійсне ".
Ця нестандартна пропозиція викликала певні суперечки та дебати в спільноті користувачів React, оскільки вона може бути інтерпретована таким чином, щоб надавати можливість Facebook відкликати ліцензію у багатьох сценаріях, наприклад, якщо Facebook засуджує ліцензіата, змушуючи їх приймати «інші дії», публікуючи дію в блозі або в іншому місці. Багато хто висловив занепокоєння тим, що Facebook може несправедливо користуватися пропозицією про припинення дії, або те, що інтеграція React у продукт може ускладнити майбутнє придбання початкової компанії. Ґрунтуючись на відгуках громадськості, Facebook оновив патентний грант в квітні 2015 року, щоб бути менш двозначним та більш дозвільним:
«Ліцензія, надана цим договором, автоматично і без попередження припиняється, якщо Ви (або будь-які з Ваших дочірніх компаній, корпоративних філій або агентів) опосередковано або безпосередньо проявляють фінансову зацікавленість в будь-яких патентних заявах: (i) проти Facebook або будь-яких її дочірніх компаніях або корпоративних філіях; (ii) проти будь-якої сторони, якщо така патентна заява виникає повністю або частково з будь-якого програмного забезпечення, технології, продукту або послуги Facebook або будь-яких її дочірніх або корпоративних філій; (iii) проти будь-яких що стосується програмного забезпечення. […] „Патентне затвердження“ — це будь-який судовий процес або інша дія, яка передбачає пряме, непряме чи сприятливе порушення або стимул до порушення будь-якого патенту, включаючи перехресний позов чи зустрічний позов».
Фонд Apache Software вважає цю ліцензійну угоду несумісною з її ліцензійною політикою, оскільки вона «передається ризику для споживачів нашого програмного продукту, що не відповідає на користь ліцензіара, а не ліцензіату, тим самим порушуючи нашу юридичну політику Apache як універсального донора», і «не є підмножиною тих, що містяться в [Apache License 2.0], і їх не можна вважати підліцензіями як [Apache License 2.0]». У серпні 2017 року Facebook відмовився від перегляду своїх ліцензій на послуги Apache Foundation та відмовився переглянути свою ліцензію, і наступного місяця WordPress вирішив переключити проекти Gutenberg та Calypso на «React».
Зміна ліцензії
23 вересня 2017 року Facebook оголосив, що наступного тижня вони будуть перепризначати ліцензії Flow, Jest, React і Immutable.js за стандартною ліцензією MIT; компанія заявила, що React був «основою широкої екосистеми програмного забезпечення з відкритим вихідним кодом для Інтернету», і що вони не хотіли «припиняти прогрес за нетехнічними міркуваннями».
26 вересня 2017 року було випущено React 16.0.0 з ліцензією MIT. Зміна ліцензії MIT також була перенаправлена до лінії випуску 15.x за допомогою React 15.6.2.
Посилання
- . GitHub. Архів оригіналу за 29 серпня 2023. Процитовано 14 червня 2022.
- https://registry.npmjs.com/react
- . InfoWorld. Архів оригіналу за 15 грудня 2015. Процитовано 3 березня 2015.
- . InfoQ. Архів оригіналу за 8 березня 2016. Процитовано 3 березня 2015.
- . The New Stack. Архів оригіналу за 16 березня 2016. Процитовано 3 березня 2015.
- . Cleveroad Inc. - Web & App development company. Архів оригіналу за 26 січня 2018. Процитовано 25 січня 2018.
- . Joel Burget. Архів оригіналу за 6 грудня 2015. Процитовано 3 березня 2015.
- . React.js. Архів оригіналу за 18 березня 2015. Процитовано 3 березня 2015.
- Yahoo Mail moving to React. Slideshare.
- . Medium. Архів оригіналу за 7 січня 2015. Процитовано 3 березня 2015.
- . Twitter. Архів оригіналу за 3 березня 2016. Процитовано 3 березня 2015.
- Twitter. Архів оригіналу за 4 березня 2016. Процитовано 3 березня 2015.
- React (JS Library): How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook?. Quora.
- . Архів оригіналу за 31 липня 2017. Процитовано 28 березня 2016.
- . Instrument. Архів оригіналу за 27 лютого 2015. Процитовано 3 березня 2015.
- . React. Архів оригіналу за 29 травня 2016. Процитовано 3 березня 2015.
- . Архів оригіналу за 13 лютого 2017. Процитовано 17 листопада 2015.
- . Архів оригіналу за 6 квітня 2015. Процитовано 14 січня 2017.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 15 липня 2017. Процитовано 14 січня 2017.
- . Архів оригіналу за 17 грудня 2016. Процитовано 14 січня 2017.
- Paresh Sagar (19-11-2021). Reasons to Combine a Node.js With a React.js for Web Development Project. Excellent Webworld (English) . Процитовано 19-11-2021.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
React stari nazvi React js ReactJS vidkrita JavaScript biblioteka dlya stvorennya interfejsiv koristuvacha yaka poklikana virishuvati problemi chastkovogo onovlennya vmistu vebstorinki z yakimi stikayutsya v rozrobci odnostorinkovih zastosunkiv Rozroblyayetsya Meta ranishe Facebook i spilnotoyu individualnih rozrobnikiv ReactTip biblioteka JavaScriptAvtor Meta PlatformsRozrobniki Meta ta spilnotaPershij vipusk 2013Stabilnij vipusk 18 2 0 14 chervnya 2022 2 roki tomu 2022 06 14 Versiyi 18 3 1 26 kvitnya 2024 2 Platforma bagatoplatformovaOperacijna sistema krosplatformova programaMova programuvannya JavaScriptRozmir 128 Kb minimizovana versiya 559 Kb versiya dlya rozrobkiStan rozrobki AktivnijLicenziya MIT LicenseOnlajn dokumentaciya reactjs org docs getting started html angl ru reactjs org docs getting started html ros ar reactjs org docs getting started htmlRepozitorij github com facebook reactVebsajt react dev uk react dev ukrayinska versiya Mediafajli u Vikishovishi React dozvolyaye rozrobnikam stvoryuvati veliki vebzastosunki yaki vikoristovuyut dani kotri zminyuyutsya z chasom bez perezavantazhennya storinki Jogo meta polyagaye v tomu shob buti shvidkim prostim masshtabovanim React obroblyaye tilki koristuvackij interfejs u zastosunkah Ce vidpovidaye vidovi u shabloni model vid kontroler MVC i mozhe buti vikoristane u poyednanni z inshimi JavaScript bibliotekami abo v velikih frejmvorkah MVC takih yak AngularJS Vin takozh mozhe buti vikoristanij z React na osnovi nadbudov shob pikluvatisya pro chastini bez koristuvackogo interfejsu pobudovi vebzastosunkiv Yak biblioteku interfejsu koristuvacha React najchastishe vikoristovuyut razom z inshimi bibliotekami takimi yak Redux V danij chas React vikoristovuyut Khan Academy Netflix Yahoo Airbnb Sony Atlassian ta inshi IstoriyaBiblioteku stvoreno Dzhordanom Volkom Jordan Walke programistom z Facebook Avtor pracyuvav nad proektom pid vplivom frejmvorku HTML dlya PHP 2011 go roku reliz z yavivsya u novinah Facebook za rik u blozi Instagram Takozh frejmvork buv predstavlenij yak proekt z vidkritim pochatkovim kodom na konferenciyi rozrobnikiv JSConf US sho prohodila u Spoluchenih Shtatah u travni 2013 roku Na konferenciyi React js Conf vlashtovanu Fejsbukom u berezni 2015 go proekt bulo predstavleno yak vidkrite programne zabezpechennya OsoblivostiOdnostoronnya peredacha danih Vlastivosti peredayutsya v renderer komponentu yak vlastivosti html tegu Komponent ne mozhe napryamu zminyuvati vlastivosti sho jomu peredani ale mozhe yih zminyuvati cherez callback funkciyi Takij mehanizm nazivayut vlastivosti donizu podiyi nagoru Virtualnij DOM React pidtrimuye virtualnij DOM a ne pokladayetsya viklyuchno na DOM brauzera Ce dozvolyaye biblioteci viznachiti yaki chastini DOM zminilisya porivnyano diff zi zberezhenoyu versiyeyu virtualnogo DOM i takim chinom viznachiti yak najefektivnishe onoviti DOM brauzera Takim chinom programist pracyuye zi storinkoyu vvazhayuchi sho vona onovlyuyetsya vsya ale biblioteka samostijno virishuye yaki komponenti storinki treba onoviti JSX Komponenti React zazvichaj napisani na JSX Kod napisanij na JSX kompilyuyetsya u vikliki metodiv biblioteki React Rozrobniki mozhut tak samo pisati na chistomu JavaScript JSX nagaduye inshu movu yaku stvorili u kompaniyi Fejsbuk dlya rozshirennya PHP Ne lishe rendering HTML v brauzeri React vikoristovuyut ne lishe dlya renderingu HTML v brauzeri Napriklad Facebook maye dinamichni grafiki yaki renderyatsya v tegi lt canvas gt Netflix ta PayPal vikoristovuyut izomorfne zavantazhennya dlya renderingu identichnogo HTML na serveri ta kliyenti Metodi zhittyevogo ciklu Metodi zhittyevogo ciklu ce rizni metodi yaki vbudovuyutsya za dopomogoyu ReactJS Voni dozvolyayut rozrobniku obroblyati dani v riznih tochkah zhittyevogo ciklu programi React Napriklad shouldComponentUpdate ce metod zhittyevogo ciklu yakij kazhe Javascript onoviti komponent vikoristovuyuchi logichni zminni componentWillMount ce metod zhittyevogo ciklu yakij kazhe Javascript nalashtuvati pevni dani pered montuvannyam komponentiv vstavlennya u virtualnij DOM componentDidMount ce metod zhittyevogo ciklu podibnij do komponenta WillMount za vinyatkom togo sho vin pracyuye pislya metodu render i mozhe vikoristovuvatisya dlya dodavannya JSON danih a takozh dlya viznachennya vlastivostej ta staniv render ye najvazhlivishim metodom zhittyevogo ciklu neobhidnim u bud yakomu komponenti Metod render ce te sho z yednuyetsya z JSX i vidobrazhati vlasnij JSX Vkladeni elementi Kilka elementiv na odnomu rivni povinni buti zagornutimi v odin element kontejnera napriklad element lt div gt abo povernutij yak masiv Atributi JSX nadaye ryad atributiv elementiv priznachenih dlya vidobrazhennya tih sho nadayutsya u formati HTML Koristuvacki atributi takozh mozhut buti peredani komponentu Vsi atributi budut otrimani komponentom yak rekvizit Virazi JavaScript Virazi JavaScript mozhna vikoristovuvati v JSX z figurnimi duzhkami lt h1 gt 10 1 lt h1 gt Priklad navedenij vishe vidobrazhatimetsya tak lt h1 gt 11 lt h1 gt Umovni virazi Viraz If else ne mozhut buti vikoristani vseredini JSX ale zamist nih mozhut vikoristovuvatisya umovni virazi U prikladi nizhche bude pokazano i 1 true false yak ryadok true oskilki i dorivnyuye 1 class App extends React Component render const i 1 return lt div gt lt h1 gt i 1 true false lt h1 gt lt div gt Funkciyi ta JSX mozhna vikoristovuvati v umovnih virazah class App extends React Component render const sections 1 2 3 return lt div gt sections length gt 0 sections map n gt lt div gt Section n lt div gt null lt div gt Kod napisanij u JSX potrebuye peretvorennya za dopomogoyu takogo instrumentu yak Babel dlya togo shob jogo mogli zrozumiti vebbrauzeri Cya obrobka yak pravilo vikonuyetsya pid chas procesu zbirki persh nizh programa bude zapushena React NativeReact Native predstavlenij kompaniyeyu Facebook u 2015 roci sho zastosovuye React arhitekturu do nativnih IOS Android ta UWP dodatkiv Istoriya U 2012 roci Mark Cukerberg zaznachiv Najbilsha pomilka yaku mi zrobili yak kompaniya ce nadto velika stavka na HTML5 na vidminu vid nativnih dodatkiv Vin poobicyav sho Facebook nezabarom zaproponuye krashe rishennya dlya mobilnih platform V Facebook Dzhordan Uollk znajshov sposib generuvati elementi interfejsu iOS z fonovogo Javascript potoku Voni virishili organizuvati vnutrishnij hakaton dlya vdoskonalennya cogo prototipu shob vmiti buduvati nativni dodatki za dopomogoyu ciyeyi tehnologiyi Pislya kilkoh misyaciv rozrobki Facebook vipustila pershu versiyu dlya React js Conf 2015 Pid chas tehnichnogo obgovorennya Kristofer Chedo poyasniv sho Facebook vzhe vikoristovuvav React Native dlya yihnih Group App ta Ads Manager App 18 kvitnya 2017 roku Facebook predstaviv React Fiber novij osnovnij algoritm biblioteki React dlya stvorennya koristuvackih interfejsiv React Fiber stane osnovoyu dlya bud yakih podalshih vdoskonalen ta rozvitku funkcij sistemi React Principi roboti Principi roboti React Native v osnovnomu taki zh yak ReactJS za vinyatkom togo sho vin ne manipulyuye DOM cherez VirtualDom Vin pracyuye u fonovomu procesi yakij interpretuye Javascript kod napisanij rozrobnikami bezposeredno na kincevomu pristroyi i spilkuyetsya z nativnoyu platformoyu Ochevidno sho Facebook vipraviv pomilku pro yaku Mark Cukerberg zgaduvav 2012 roku React Native vzagali ne pokladayetsya na HTML vse napisano na Javascript i zalezhit vid nativnih SDK Osnovne vikoristannyaNizhche navedeno pochatkovij priklad realizaciyi vikoristannya React v HTML z JSX ta JavaScript lt div id myReactApp gt lt div gt lt script type text babel gt class Greeter extends React Component render return lt h1 gt this props greeting lt h1 gt ReactDOM render lt Greeter greeting Hello World gt document getElementById myReactApp lt script gt Klas Greeter komponent React yakij prijmaye vlastivist privitannya Metod ReactDOM render stvoryuye ekzemplyar komponenta Greeter vstanovlyuye vlastivist privitannya dlya Hello World ta vstavlyaye virazhenij komponent u viglyadi dochirnogo elementa do elementu DOM z id myReactApp Yaksho vidobraziti v vebbrauzeri to rezultat bude lt div id myReactApp gt lt h1 gt Hello World lt h1 gt lt div gt Zagalni idiomiReact ne namagayetsya nadati povnu shemu dodatkiv Vin bezposeredno spryamovanij na pobudovu koristuvackih interfejsiv i tomu ne vklyuchaye v sebe bezlich instrumentiv yaki deyaki rozrobniki vvazhayut neobhidnimi dlya stvorennya programi Ce dozvolyaye vibrati bud yaki biblioteki yaki rozrobnik vvazhaye za krashe vikonuvati shob vikonati pevnih zavdan takih yak zdijsnennya dostupu do merezhi abo lokalne zberigannya danih Vikoristannya arhitekturi Flux Dlya pidtrimki koncepciyi React shodo odnostoronnogo potoku danih arhitektura Flux yavlyaye soboyu alternativu populyarnij arhitekturi Model view controller Flux ce diyi yaki nadsilayutsya cherez centralnij dispetcher do shovisha a zmini z shovisha nadsilayut nazad do pereglyadu U vikoristanni razom z React ce poshirennya zdijsnyuyetsya cherez komponenti vlastivostej Komponent React pid arhitekturoyu Flux ne povinen bezposeredno zminyuvati bud yaki rekviziti peredani jomu ale povinen peredati funkciyi zvorotnogo vikliku sho stvoryuyut diyi yaki vidpravlyaye dispetcher dlya modifikaciyi shovisha Shovishe yake mozhna rozglyadati yak model mozhe zminyuvatisya u vidpovid na diyi otrimani vid dispetchera Cej shablon inodi virazhayetsya yak properties flow down actions flow up Bagato realizacij Flux stvoreno z momentu jogo stvorennya mabut najbilsh vidomim ye Redux yakij maye odne shovishe yake chasto nazivayut single source of truth ce praktika strukturuvannya informacijnih modelej ta pov yazanih shem danih tak sho kozhen element danih zberigayetsya rivno odin raz LicenzuvannyaPochatkovij publichnij reliz React vidbuvsya v travni 2013 roku vikoristovuvav standartnij Apache License 2 0 U zhovtni 2014 roku React 0 12 0 zaminiv jogo licenziyeyu BSD na 3 punkti ta dodav okremij tekstovij fajl PATENTS yakij dozvolyaye vikoristovuvati bud yaki patenti Facebook pov yazani z programnim zabezpechennyam Licenziya nadana cim dogovorom avtomatichno i bez poperedzhennya pripinyayetsya dlya tih hto podaye bud yaki pretenziyi u tomu chisli shlyahom podannya bud yakih pozoviv zayav chi inshih dij sho stosuyutsya a pryamogo nepryamogo chi oposeredkovanogo porushennya abo sponukannya do porushennya bud yakogo patentu i Facebook abo bud yaki jogo dochirni abo afilijovani kompaniyi nezalezhno vid togo chi taka pretenziya pov yazana z programnim zabezpechennyam ii bud yakoyu storonoyu yaksho taka vimoga vinikaye povnistyu abo chastkovo z bud yakogo programnogo zabezpechennya produktu chi poslugi Facebook abo bud yakogo z yiyi dochirnih ta afilijovanih osib nezalezhno vid togo chi taka pretenziya pov yazana z programnim zabezpechennyam abo iii bud yakoyu storonoyu sho stosuyetsya programnogo zabezpechennya abo b sho bud yake pravo na bud yaku pretenziyu na patent Facebook nedijsne abo nedijsne Cya nestandartna propoziciya viklikala pevni superechki ta debati v spilnoti koristuvachiv React oskilki vona mozhe buti interpretovana takim chinom shob nadavati mozhlivist Facebook vidklikati licenziyu u bagatoh scenariyah napriklad yaksho Facebook zasudzhuye licenziata zmushuyuchi yih prijmati inshi diyi publikuyuchi diyu v blozi abo v inshomu misci Bagato hto visloviv zanepokoyennya tim sho Facebook mozhe nespravedlivo koristuvatisya propoziciyeyu pro pripinennya diyi abo te sho integraciya React u produkt mozhe uskladniti majbutnye pridbannya pochatkovoyi kompaniyi Gruntuyuchis na vidgukah gromadskosti Facebook onoviv patentnij grant v kvitni 2015 roku shob buti mensh dvoznachnim ta bilsh dozvilnim Licenziya nadana cim dogovorom avtomatichno i bez poperedzhennya pripinyayetsya yaksho Vi abo bud yaki z Vashih dochirnih kompanij korporativnih filij abo agentiv oposeredkovano abo bezposeredno proyavlyayut finansovu zacikavlenist v bud yakih patentnih zayavah i proti Facebook abo bud yakih yiyi dochirnih kompaniyah abo korporativnih filiyah ii proti bud yakoyi storoni yaksho taka patentna zayava vinikaye povnistyu abo chastkovo z bud yakogo programnogo zabezpechennya tehnologiyi produktu abo poslugi Facebook abo bud yakih yiyi dochirnih abo korporativnih filij iii proti bud yakih sho stosuyetsya programnogo zabezpechennya Patentne zatverdzhennya ce bud yakij sudovij proces abo insha diya yaka peredbachaye pryame nepryame chi spriyatlive porushennya abo stimul do porushennya bud yakogo patentu vklyuchayuchi perehresnij pozov chi zustrichnij pozov Fond Apache Software vvazhaye cyu licenzijnu ugodu nesumisnoyu z yiyi licenzijnoyu politikoyu oskilki vona peredayetsya riziku dlya spozhivachiv nashogo programnogo produktu sho ne vidpovidaye na korist licenziara a ne licenziatu tim samim porushuyuchi nashu yuridichnu politiku Apache yak universalnogo donora i ne ye pidmnozhinoyu tih sho mistyatsya v Apache License 2 0 i yih ne mozhna vvazhati pidlicenziyami yak Apache License 2 0 U serpni 2017 roku Facebook vidmovivsya vid pereglyadu svoyih licenzij na poslugi Apache Foundation ta vidmovivsya pereglyanuti svoyu licenziyu i nastupnogo misyacya WordPress virishiv pereklyuchiti proekti Gutenberg ta Calypso na React Zmina licenziyi 23 veresnya 2017 roku Facebook ogolosiv sho nastupnogo tizhnya voni budut perepriznachati licenziyi Flow Jest React i Immutable js za standartnoyu licenziyeyu MIT kompaniya zayavila sho React buv osnovoyu shirokoyi ekosistemi programnogo zabezpechennya z vidkritim vihidnim kodom dlya Internetu i sho voni ne hotili pripinyati progres za netehnichnimi mirkuvannyami 26 veresnya 2017 roku bulo vipusheno React 16 0 0 z licenziyeyu MIT Zmina licenziyi MIT takozh bula perenapravlena do liniyi vipusku 15 x za dopomogoyu React 15 6 2 Posilannya GitHub Arhiv originalu za 29 serpnya 2023 Procitovano 14 chervnya 2022 https registry npmjs com react InfoWorld Arhiv originalu za 15 grudnya 2015 Procitovano 3 bereznya 2015 InfoQ Arhiv originalu za 8 bereznya 2016 Procitovano 3 bereznya 2015 The New Stack Arhiv originalu za 16 bereznya 2016 Procitovano 3 bereznya 2015 Cleveroad Inc Web amp App development company Arhiv originalu za 26 sichnya 2018 Procitovano 25 sichnya 2018 Joel Burget Arhiv originalu za 6 grudnya 2015 Procitovano 3 bereznya 2015 React js Arhiv originalu za 18 bereznya 2015 Procitovano 3 bereznya 2015 Yahoo Mail moving to React Slideshare Medium Arhiv originalu za 7 sichnya 2015 Procitovano 3 bereznya 2015 Twitter Arhiv originalu za 3 bereznya 2016 Procitovano 3 bereznya 2015 Twitter Arhiv originalu za 4 bereznya 2016 Procitovano 3 bereznya 2015 React JS Library How was the idea to develop React conceived and how many people worked on developing it and implementing it at Facebook Quora Arhiv originalu za 31 lipnya 2017 Procitovano 28 bereznya 2016 Instrument Arhiv originalu za 27 lyutogo 2015 Procitovano 3 bereznya 2015 React Arhiv originalu za 29 travnya 2016 Procitovano 3 bereznya 2015 Arhiv originalu za 13 lyutogo 2017 Procitovano 17 listopada 2015 Arhiv originalu za 6 kvitnya 2015 Procitovano 14 sichnya 2017 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 15 lipnya 2017 Procitovano 14 sichnya 2017 Arhiv originalu za 17 grudnya 2016 Procitovano 14 sichnya 2017 Paresh Sagar 19 11 2021 Reasons to Combine a Node js With a React js for Web Development Project Excellent Webworld English Procitovano 19 11 2021