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 PHP – . Często wykorzystywana do tworzenia aplikacji typu .
Z głównych cech wyróżniających bibliotekę React.js jest wirtualny . React przechowuje cały aplikacji w pamięci, po zmianie stanu wyszukuje różnice między wirtualnym i prawdziwym 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.
React.js jest obecnie używany na stronach internetowych firm takich jak Netflix, Imgur, PayPal, Archive.org, , , HelloSign czy Walmart. W 2015 roku React.js i React Native były dwoma najpopularniejszymi otwartymi projektami na stronie GitHub.
Biblioteka React jest wykorzystywana przez framework .
Kontrowersje licencyjne React.js od października 2014 do września 2017 był dostępny na 3-klauzulowej licencji 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. (dalej: ) wydało oświadczenie, że wyjątek ten jest niezgodny z licencją BSD i powinien zostać usunięty. Jednocześnie zabroniło używania React na ówczesnej licencji we wszystkich projektach wspieranych przez . Facebook jeszcze w sierpniu 2017 odrzucił możliwość zmiany licencji.
We wrześniu 2017 WordPress zapowiedział, że rezygnuje z użycia biblioteki Facebooka w swoich projektach ze względu na kontrowersje licencyjne. Tydzień po tej decyzji Facebook zapowiedział zmianę licencji dla React.js na licencję . 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).
Przypisy
Linki zewnętrzne
Kategoria:Biblioteki JavaScript Kategoria:Frameworki Kategoria:Oprogramowanie na licencji BSD