Przejdź do zawartości

React.js

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez ZFranciszek (dyskusja | edycje) o 13:10, 20 maj 2024. Może się ona znacząco różnić od aktualnej wersji.
React.js
logo
Autor Jordan Walke
Pierwsze wydanie 1 marca 2013; około 12 lat temu
Aktualna wersja stabilna 18.2.0 / 14 czerwca 2022; około 3 lata temu
Język programowania JavaScript
Platforma sprzętowa Wieloplatformowy
Licencja MIT
Strona internetowa

React.js (inne nazwy: React, ReactJS) – biblioteka języka programowania JavaScript, która wykorzystywana jest do tworzenia interfejsów graficznych aplikacji internetowych. Została stworzona przez Jordana Walke, programistę Facebooka, a zainspirowana przez rozszerzenie języka PHPXHP(inne języki)[1][2]. Często wykorzystywana do tworzenia aplikacji typu Single Page Application.

Z głównych cech wyróżniających bibliotekę React.js jest wirtualny DOM. React przechowuje cały DOM aplikacji w pamięci, po zmianie stanu wyszukuje różnice między wirtualnym i prawdziwym DOM i aktualizuje zmiany. Drugą z cech szczególnych React jest język JSX. Jest on nakładką na JavaScript, która dodaje możliwość wstawiania kodu HTML (lub komponentów React) bezpośrednio w kodzie, zamiast ciągu znaków.

Inne funkcjonalności biblioteki React.js

  • Jednokierunkowe wiązanie danych: React korzysta z jednokierunkowego przepływu danych, co ułatwia zarządzanie stanem aplikacji i eliminuje błędy z synchronizacją danych.
  • Architektura Flux: React zachęca do używania architektury Flux, co ułatwia organizację kodu i oddziela logikę biznesową od interfejsu użytkownika.
  • Komponenty: React opiera się na komponentach, które są wielokrotnie używane i reużywalne, co ułatwia modularność i konserwację kodu.
  • Obsługa zdarzeń: React umożliwia obsługę interakcji użytkownika, takich jak kliknięcia i zmiany stanu formularzy, co ułatwia implementację interaktywnych funkcji aplikacji.
  • Biblioteki dodatkowe: Ekosystem React oferuje wiele bibliotek, takich jak Redux i React Router, które rozszerzają jego możliwości i ułatwiają zarządzanie stanem aplikacji oraz nawigację między widokami.
  • Wsparcie dla aplikacji mobilnych: React Native pozwala na tworzenie natywnych aplikacji mobilnych dla Androida i iOS, co skraca czas potrzebny na rozwój i ułatwia utrzymanie jednego kodu źródłowego.
  • Wsparcie społecznościowe: React cieszy się popularnością wśród programistów, co przekłada się na bogatą dokumentację, dostępność gotowych rozwiązań i aktywne fora dyskusyjne, ułatwiając znalezienie pomocy i wsparcia podczas tworzenia aplikacji.[3]

React.js jest obecnie używany na stronach internetowych firm takich jak Netflix, Imgur, PayPal, Archive.org, Gamepedia(inne języki), SeatGeek(inne języki), HelloSign czy Walmart[4]. W 2015 roku React.js i React Native były dwoma najpopularniejszymi otwartymi projektami na stronie GitHub[5]. Według raportu State of Java Script z 2022 roku, jest to najczęściej używana i najpopularniejsza biblioteka oraz najlepiej odbierana przez społeczność.[6]

Biblioteka React jest wykorzystywana przez framework Next.js(inne języki).

Kontrowersje licencyjne

React.js od października 2014 do września 2017 był dostępny na 3-klauzulowej licencji BSD z tzw. wyjątkiem patentowym dodanym przez Facebooka. Wyjątek miał chronić Facebooka przed pozwami związanymi z naruszeniem patentów, ale dawał prawo Facebookowi zerwania licencji w każdej chwili. Wyjątek wzbudzał kontrowersje jako ograniczający dostęp do biblioteki poprzez niejasne zapisy[7][8]. Apache Software Foundation (dalej: ASF) wydało oświadczenie, że wyjątek ten jest niezgodny z licencją BSD i powinien zostać usunięty. Jednocześnie ASF zabroniło używania React na ówczesnej licencji we wszystkich projektach wspieranych przez ASF[9][10]. Facebook jeszcze w sierpniu 2017 odrzucił możliwość zmiany licencji[11].

We wrześniu 2017 WordPress zapowiedział, że rezygnuje z użycia biblioteki Facebooka w swoich projektach ze względu na kontrowersje licencyjne[8]. Tydzień po tej decyzji Facebook zapowiedział zmianę licencji dla React.js na licencję MIT[12]. Zmiana licencji została zastosowana zarówno dla nowej wersji React.js (16.0), jak i dla poprzedniej (15.x, począwszy od 15.6.2)[13].

Przypisy

  1. Dan Abramov: React was partly inspired by XHP. Twitter.
  2. Vjeux: Our First 50,000 Stars. Oficjalny Blog, 2016-09-28. [dostęp 2021-10-10].
  3. Paweł Żurawski, Angular vs React: In-depth comparison of the most popular front-end technologies [online], Pretius, 18 kwietnia 2024 [dostęp 2024-05-20] (ang.).
  4. React. libscore. [dostęp 2017-01-14]. (ang.).
  5. Christine Abernathy: Open source in 2015: A year of growth. /code.facebook, 2015-12-29. [dostęp 2017-01-14]. (ang.).
  6. State of JavaScript 2022 [online], 2022.stateofjs.com [dostęp 2024-05-20] (ang.).
  7. Berkana, A compelling reason not to use ReactJS [online], Bits and Pixels, 24 maja 2015 [dostęp 2017-10-10].
  8. a b Natasha Lomas, WordPress to ditch React library over Facebook patent clause risk, „TechCrunch” [dostęp 2017-10-10] (ang.).
  9. Facebook won’t change React.js license despite Apache developer pain [online], 21 sierpnia 2017 [dostęp 2017-10-10] (ang.).
  10. Apache Foundation bans use of Facebook BSD+Patents licensed libraries like React.js [online], react-etc.net [dostęp 2017-10-10] (ang.).
  11. Explaining React’s license [online], Facebook Code, 19 sierpnia 2017 [dostęp 2017-10-10] (ang.).
  12. Relicensing React, Jest, Flow, and Immutable.js [online], Facebook Code, 22 września 2017 [dostęp 2017-10-10] (pol.).
  13. React v16.0 – React Blog [online], reactjs.org, 26 września 2017 [dostęp 2017-10-10] (ang.).

Linki zewnętrzne