React (sonday-aq React.js yamasa ReactJS dep te ataladı) ‒ bul biypul hám ashıq kodlı front-end JavaScript kitapxanası[1][2] bolıp, komponentlerge tiykarlanǵan paydalanıwshı interfeyslerin jaratıwdı kóbirek "úziliksiz" etiwge baǵdarlanǵan.[1] Ol Meta (burınǵı Facebook) hám jeke baǵdarlamashılar hám kompaniyalar jámiyeti tárepinen qollap-quwatlanadı.[3][4][5]

React bir betli, mobil yamasa Next.js sıyaqlı freymvorkler menen server tárepinen renderlengen qosımshalardı islep shıǵıw ushın qollanılıwı múmkin. React tek paydalanıwshı interfeysi hám komponentlerdi DOM-ǵa renderlew menen shuǵıllanatuǵını sebepli, React qosımshaları kóbinese marshrutizaciya hám basqa da klient tárep funkcionallıǵı ushın kitapxanalarǵa súyenedi.[6][7] React tiń tiykarǵı artıqmashlıǵı - ol bettiń tek ózgergen bólimlerin qayta renderleydi, ózgermegen DOM elementlerin kereksiz qayta renderlewden qashıp ótedi.

Áhmiyetli ózgeshelikleri

Deklarativlik

[8]React deklarativ programmalastırıw paradigmasına ámel etedi.[9]: 76  Baǵdarlamashılar qosımshanıń hár bir halatı ushın kórinislerdi dizayn etedi, al React maǵlıwmatlar ózgergende komponentlerdi jańalaydı hám renderleydi. Bul imperativ programmalastırıwǵa qarama-qarsı.[10]

Komponentler

React kodı komponentler dep atalatuǵın obyektlerden turadı.: 10–12 Bul komponentler modulli hám qayta qollanılıwshı.[9]: React qosımshaları ádette komponentlerdiń kóp qatlamlarınan ibarat. Komponentler React DOM kitapxanası arqalı DOM-daǵı tiykarǵı elementke renderlenedi. Komponentti renderlew waqtında, mánisler komponentler arasında props (qısqasha "qásiyetler") arqalı beriledi. Komponent ishindegi mánisler onıń halatı dep ataladı.[11]

React-te komponentlerdi járiyalawdıń eki tiykarǵı usılı - funkciya komponentleri hám klass komponentleri arqalı.[9]: 118 [12]: 10 

Funkciya komponentleri

Funkciya komponentleri bir "props" argumentin qabıl etetuǵın hám JSX qaytaratuǵın funkciya menen járiyalanadı (JavaScript funkciya sintaksisin yamasa strelkalı funkciya ańlatpasın qollanıp). React v16.8 den baslap, funkciya komponentleri useState Hook arqalı halattı qollana aladı.

React Xukleri

2019-jıldıń 16-fevralında React 16.8 jámiyetshilikke shıǵarıldı, React Hooks engizildi.[13] Hooks - bul baǵdarlamashılarǵa funkciya komponentlerinen React halatı hám ómirlik cikl múmkinshiliklerine "qosıwǵa" imkaniyat beretuǵın funkciyalar.[14] Áhmiyetlisi, Hooks klasslar ishinde islemeydi - olar baǵdarlamashılarǵa klasslar bolmasa da React tiń kóbirek múmkinshiliklerin qollanıwǵa imkaniyat beredi.[15]

React bir neshe qurılǵan xuklerdi usınadı, mısalı useState,[16][12]: 37  useContext,[9]: 11 [17][12]: 12  useReducer,[9]: 92 [17][12]: 65–66  useMemo[9]: 154 [17][12]: 162  and useEffect.[18][12]: 93–95  Basqaları Hooks API anıqlamasında hújjetlestirilgen.[19][9]: 62  Eń kóp qollanılatuǵın useState hám useEffect sáykes túrde halattı: 37  hám uqsas tásirlerdi,[9]: 61  basqarıw ushın qollanıladı.

Xuklerdiń qaǵıydaları

Xuklerdiń eki qaǵıydası bar,[20] olar xukler súyenetuǵın xarakterli kod úlgilerin súwretleydi:

  1. "Xuklerdi tek joqarǵı dárejede shaqırıń" — xuklerdi cikldiń ishinde, shártlerde yamasa ishke salınǵan mánislerde shaqırmań, solay etip xukler hár bir renderde birdey tártipte shaqırıladı.
  2. "Xuklerdi tek React funkciyalarınan shaqırıń" — xuklerdi ápiwayı JavaScript funkciyalarınan shaqırmań, solay etip halatlı logika komponent penen birge qaladı.

Bul qaǵıydalar orınlanıw waqtında májbúriy túrde qollanılmasa da, kod analizi quralları, mısalı linterler, rawajlanıw barısında kóplegen qátelerdi anıqlaw ushın konfiguraciya qılınıwı múmkin. Bul qaǵıydalar hám Xuklerdi qollanıwǵa, hám basqa Xuklerdi shaqıra alatuǵın ózgeshe Xuklerdi islep shıǵıwǵa qollanıladı.[21]

Server komponentleri

React server komponentleri (RSC) [22] - bul tek serverde jumıs isleytuǵın funkciya komponentleri. Bul koncepciya dáslep "Data Fetching with Server Components" sóylesiwinde tanıstırılǵan.[23] Server tárepinen renderlew koncepciyasına uqsas bolsa da, RSC-ler klientke sáykes JavaScript jibermeydi, sebebi hesh qanday gidrataciya bolmaydı. Nátiyjede, olardıń xuklerge kiriwi joq. Biraq, olar asinxron funkciya bolıwı múmkin, bul olarǵa tikkeley asinxron operaciyalardı orınlawǵa múmkinshilik beredi:

async function MenińKomponentim() {
  const xabar = await maǵlıwmatlarBazasınanXabarAlıw();

  return (
    <div>Xabar: {xabar}</div>
  );
}

Házirgi waqıtta, server komponentleri eń qolay túrde Next.js penen qollanıladı.

Klass komponentleri

Klass komponentleri ES6 klassları arqalı járiyalanadı. Olar funkciya komponentleri sıyaqlı isleydi, biraq halattı hám ómirlik cikl waqıyaların basqarıw ushın Xuklerdi qollanıwdıń ornına, olar React.Component tiykarǵı klassındaǵı ómirlik cikl metodların qollanadı.

class AtaKomponent extends React.Component {
  state = { reń: 'jasıl' };
  render() {
    return (
      <BalaKomponent reń={this.state.reń} />
    );
  }
}

2019-jıldıń fevral ayında React 16.8 versiyası menen birge kirgizilgen React Xukleri programmistlerge funkcional komponentler ishinde halattı hám ómirlik cikl háreketlerin basqarıwǵa múmkinshilik berdi, bul klass komponentlerine bolǵan ǵárezlikti kemeytti.

Bul tendenciya keń kólemli industriya háreketiniń funkcional programmalastırıw hám modulli dizaynǵa qaray baǵdarlanıwı menen sáykes keledi. React rawajlanıwdı dawam etken sayın, programmistler jańa qollanbalardı dúzgende yamasa bar bolǵanların qayta islegende funkcional komponentler hám React Xukleriniń artıqmashlıqların esapqa alıwı áhmiyetli.[24]

Marshrutlaw

React ózi marshrutlawdı qollaw ushın qurılǵan funkciyalarǵa iye emes. React tiykarınan paydalanıwshı interfeyslerin qurıw ushın kitapxana bolıp, ol tolıq marshrutlaw sheshimin óz ishine almaydı. React qollanbalarında marshrutlawdı basqarıw ushın úshinshi tárep kitapxanaları qollanılıwı múmkin.[25] Bul programmistke marshrutlardı anıqlaw, navigaciyanı basqarıw hám URL ózgerislerin React-ke qolaylı túrde qollanıwǵa múmkinshilik beredi.

 
Haqıyqıy DOM-dı ámelge asırıw ushın Virtual DOM qollanıladı.

Virtual DOM

Jáne bir ayrıqsha ózgeshelik - bul virtual Hújjet Obekt Modeli, yamasa Virtual DOM qollanılıwı. React yadta maǵlıwmat strukturası keshin jaratadı, nátiyjedegi ayırmashılıqlardı esaplaydı, sońınan brauzerdiń kórsetilgen DOM-ın nátiyjeli túrde jańalaydı.[26] Bul process úylesiw dep ataladı. Bul programmistke pútkil bet hár bir ózgeriste qayta sızılatuǵınday etip kod jazıwǵa múmkinshilik beredi, al React tek haqıyqatında ózgergen komponentlerdi qayta sızadı. Bul saylanǵan túrde qayta sızıw ádewir ónimdarlıq artıqmashlıǵın beredi.[27]

Jańalanıwlar

Bir komponent hám maqset ushın ReactDOM.render[28] qayta shaqırılǵanda, React Virtual DOM-da jańa UI halatın kórsetedi hám haqıyqıy DOM-nıń qaysı bólimleri (eger bar bolsa) ózgeriwi kerek ekenligin anıqlaydı.[29]

 
Virtual DOM haqıyqıy DOM-dı haqıyqıy waqıtta hesh qıyınshılıqsız jańalaydı.

Ómirlik cikl metodları

Klassqa tiykarlanǵan komponentler ushın ómirlik cikl metodları, komponenttiń ómir dáwiriniń belgili noqatlarında kodtıń orınlanıwına múmkinshilik beretuǵın ilmek formasın qollanadı.

  • ShouldComponentUpdate komponentti qayta sızıw kerek bolmaǵan jaǵdayda false qaytarıw arqalı zárúr emes qayta sızıwdıń aldın alıwǵa múmkinshilik beredi.
  • componentDidMount komponent "montajlanǵannan" keyin shaqırıladı (komponent paydalanıwshı interfeysinde jaratılǵan, kóbinese DOM túyini menen baylanıstırılǵan). Bul kóbinese API arqalı uzaqtaǵı derekten maǵlıwmat júklewdi baslaw ushın qollanıladı.
  • componentDidUpdate jańalanıw bolǵannan keyin dárhal shaqırıladı.[30]
  • componentWillUnmount komponent buzılıwdan yamasa "montajdan shıǵarılıwdan" aldın dárhal shaqırıladı. Bul ádette komponent montajdan shıǵarılǵanda ápiwayı joq bolıp ketpeytuǵın, komponentke baylanıslı resurslardı kóp talap etetuǵın ǵárezliklerdi tazalaw ushın qollanıladı (mısalı, komponentke baylanıslı bolǵan hár qanday setInterval() úlgilerin alıp taslaw yamasa komponenttiń bar bolıwına baylanıslı "dokumentte" ornatılǵan "eventListener"di alıp taslaw).
  • render eń áhmiyetli ómirlik cikl metodı bolıp, hár qanday komponentte talap etiletuǵın jalǵız metod. Ol ádette komponenttiń halatı jańalanǵan hár saparı shaqırıladı, bul paydalanıwshı interfeysinde kórinis tabıwı kerek.

JSX

JSX, yamasa JavaScript XML, JavaScript til sintaksisiniń keńeytilgen túri.[31] Sırtqı kórinisi jaǵınan HTML-ge uqsas bolıp,[9]: 11  JSX kóp programmistlerge tanıs sintaksis arqalı komponent sızıwdı strukturalaw usılın usınadı[9]: 15  React komponentleri ádette JSX paydalanıp jazıladı, biraq bul májbúriy emes (komponentler taza JavaScript-te de jazılıwı múmkin). JSX Facebook tárepinen PHP ushın jaratılǵan XHP dep atalatuǵın basqa keńeytilgen sintaksiske uqsas.


JSX kodınıń mısalı:

class App extends React.Component {
  render() {
    return (
      <div>
        <p>Header</p>
        <p>Content</p>
        <p>Footer</p>
      </div>
    );
  }
}

HTML-den tıs arxitektura

React-tiń tiykarǵı arxitekturası brauzerde HTML renderlewden de keńirek qollanıladı. Mısalı, Facebook <canvas> tegine renderlenetuǵın dinamikalıq diagrammalarǵa iye,[32] al Netflix hám PayPal bolsa universal júklew arqalı birdey HTML-di hám serverde, hám klientte renderleydi.[33][34]

Server tárepinen renderlew

Server tárepinen renderlew (SSR) klient tárepindegi JavaScript qosımshasın brauzerde emes, al serverde renderlew procesin ańlatadı. Bul qosımshanıń isleniwin jaqsılawı múmkin, ásirese baylanısı áste yamasa quwatlılıǵı tómen qurılmalardı paydalanıwshılar ushın.

SSR menen, klientke jiberiletuǵın dáslepki HTML qosımshanıń tolıq renderlengen paydalanıwshı interfeysin óz ishine aladı. Bul klienttiń brauzerine paydalanıwshı interfeysin dárhal kórsetiwge múmkinshilik beredi, JavaScript júklep alınıwın hám orınlanıwın kútip, sońınan paydalanıwshı interfeysin renderlewdiń ornına.

React SSR-di qollaydı, bul programmistlerge React komponentlerin serverde renderlewge hám nátiyjedegi HTML-di klientke jiberiwge imkaniyat beredi. Bul qosımshanıń islewin jaqsılaw, sonday-aq izlew sistemasın optimizaciyalaw maqsetleri ushın paydalı bolıwı múmkin.

Ulıwma idiomalar

React tolıq qosımsha kitapxanasın beriwge háreket etpeydi. Ol tek paydalanıwshı interfeyslerin qurıw ushın arnawlı dúzilgen[1] hám sonlıqtan ayırım programmistler qosımsha jaratıw ushın zárúr dep esaplaytuǵın kóplegen qurallardı óz ishine almaydı. Bul programmistke tarmaq baylanısın ámelge asırıw yamasa jergilikli maǵlıwmatlardı saqlaw sıyaqlı wazıypalardı orınlaw ushın ózi qálegen kitapxanalardı tańlawǵa imkaniyat beredi. Kitapxana rawajlanǵan sayın, qollanıwdıń ulıwma úlgileri payda boldı.

Bir baǵdarlı maǵlıwmat aǵımı

React-tıń bir baǵdarlı maǵlıwmat aǵımı koncepciyasın qollaw ushın (bunı AngularJS-tiń eki baǵdarlı aǵımı menen salıstırıwǵa boladı), keń tarqalǵan model-kóriniw-basqarıwshı arxitekturasına alternativa sıpatında Flux arxitekturası islep shıǵıldı. Flux oraylıq dispetcher arqalı dúkanǵa jiberiletuǵın háreketlerdi óz ishine aladı, al dúkandaǵı ózgerisler qaytadan kóriniske tarqatıladı.[35] React penen birge qollanılǵanda, bul tarqatıw komponent qásiyetleri arqalı ámelge asırıladı. Payda bolǵannan beri, Flux ornın Redux hám MobX sıyaqlı kitapxanalar bastı.[36]

Flux-ti baqlawshı úlgisiniń bir túri dep qarawǵa boladı.[37]

Flux arxitekturası astındaǵı React komponenti oǵan berilgen qásiyetlerdi tikkeley ózgertpewi kerek, al oǵan dúkandı ózgertiw ushın dispetcher arqalı jiberiletuǵın háreketlerdi jaratıwshı qaytım funkciyaları beriliwi kerek. Háreket - bul ne bolǵanın súwretlewge juwapker obekt: mısalı, bir paydalanıwshınıń basqa paydalanıwshını "baqlawı" haqqındaǵı háreket paydalanıwshı identifikatorın, maqset paydalanıwshı identifikatorın hám USER_FOLLOWED_ANOTHER_USER tipin óz ishine alıwı múmkin.[38] Modeller sıpatında qarawǵa bolatuǵın dúkanlar dispetcherden alınǵan háreketlerge juwap retinde ózlerin ózgertiwi múmkin.

Bul úlgi geyde "qásiyetler tómenge aǵadı, háreketler joqarıǵa aǵadı" dep aytıladı. Flux payda bolǵannan beri onıń kóp implementaciyaları jaratıldı, olardıń arasında eń belgilisi, bálkim, Redux bolıp, ol bir dúkanǵa iye, kóbinese haqıyqattıń jalǵız deregi dep ataladı.[39]

2019-jıldıń fevral ayında useReducer React huki 16.8 versiyasında tanıstırıldı. Ol Redux penen úylesimli API-dı usınadı, bul programmistlerge komponent halatlarına jergilikli bolǵan Redux-ke uqsas dúkanlardı jaratıwǵa múmkinshilik beredi.[40]

Keleshektegi rawajlanıw

Proekttiń halatın tiykarǵı komandanıń talqılaw forumı arqalı baqlawǵa boladı.[41] Biraq, React-taǵı úlken ózgerisler Future of React repozitoriyiniń máseleleri hám tartıw sorawları arqalı ótedi.[42][43] Bul React jámiyetine jańa potencial múmkinshilikler, eksperimental API-lar hám JavaScript sintaksisin jaqsılaw boyınsha pikir bildiriwge múmkinshilik beredi.

Tariyxı

React-ti Meta kompaniyasınıń programmalıq támiyinlew injeneri Djordan Uolk jarattı. Ol dáslep "F-Bolt"[44] dep atalǵan prototipti islep shıqtı, keyin onı "FaxJS" dep qayta atadı. Bul erte versiya Djordan Uolktiń GitHub repozitoriyinde hújjetlestirilgen. Proektke tásir etken nárseler arasında XHP, PHP ushın HTML komponent kitapxanası bar edi.

React birinshi ret 2011-jılı Facebook-tıń Jańalıqlar lentasında qollanıldı hám keyin 2012-jılı Instagram-ǵa integraciyalandı. 2013-jıldıń may ayında, JSConf US konferenciyasında proekt rásmiy túrde ashıq kodlı etip járiyalandı, bul onıń qabıl etiliwi hám ósiwinde áhmiyetli burılıs noqatı boldı.

React Native, Android, iOS hám UWP ushın nativlik rawajlandırıwdı React penen ámelge asırıwǵa múmkinshilik beretuǵın texnologiya, 2015-jıldıń fevral ayında Facebook-tıń React konferenciyasında járiyalandı hám 2015-jıldıń mart ayında ashıq kodlı etip shıǵarıldı.

2017-jıldıń 18-aprelinde Facebook React Fiber haqqında járiyaladı. Bul React-tiń eski rendering algoritmi Stack-ke qaraǵanda, jańa ishki rendering algoritmler toplamı edi. React Fiber React kitapxanasınıń keleshektegi hár qanday jaqsılanıwları hám funkciyalar rawajlanıwı ushın tiykar bolıwı kerek edi.[45] React penen programmalastırıw ushın haqıyqıy sintaksis ózgermeydi; tek sintaksistiń orınlanıw usılı ózgergen.[46]React-tiń eski rendering sisteması Stack, sistemanıń dinamikalıq ózgerislerge itibarı tolıq túsinilmegen waqıtta islep shıǵılǵan edi. Mısalı, Stack quramalı animaciyalardı sızıwda áste bolıp, onıń hámmesin bir bólekte orınlawǵa háreket etti. Fiber animaciyanı bir neshe kadrlarǵa bólistiriliwi múmkin bolǵan segmentlerge bóledi. Sonday-aq, betiń strukturası bólek saqlanıwı hám jańalanıwı múmkin bolǵan segmentlerge bóliniwi múmkin. JavaScript funkciyaları hám virtual DOM obektleri "fayberler" dep ataladı, hám hár biri bólek isletiliwi hám jańalanıwı múmkin, bul ekranda tegis rendering imkaniyatın beredi.[47]

2017-jıldıń 26-sentyabrinde React 16.0 versiyası jámiyetshilikke járiyalandı.[48]

2020-jıldıń 10-avgustında React komandası React v17.0 ushın birinshi reliz-kandidattı járiyaladı, bul React baǵdarlamashı-baǵdarlı API-de úlken ózgerisler bolmaǵan birinshi úlken reliz retinde belgili boldı.

2022-jıldıń 29-martında React 18 járiyalandı, ol jańa parallel renderer, avtomatik toplamlastırıw hám Suspense járdeminde server tárepinen rendering qollawın kirgizdi.[49]

Licenziyalaw

2013-jıldıń may ayında React-tiń dáslepki jámiyetlik relizi Apache License 2.0 licenziyasın qollandı. 2014-jıldıń oktyabr ayında React 0.12.00 versiyası bunı 3-punktli BSD licenziyası menen almastırdı hám baǵdarlamalıq támiyinatqa baylanıslı qálegen Facebook patentlerin qollanıwǵa ruqsat beretuǵın ayrıqsha PATENTS tekst faylın qostı:[50]

Usı jerde berilgen licenziya avtomat túrde hám eskertiwsiz toqtatıladı, eger kim de kim tómendegilerdi tastıyıqlap talap qoysa (sonıń ishinde qanday da bir sud isin, málimleme yamasa basqa háreketti kirgiziw arqalı): (a) tuwrıdan-tuwrı, janapay yamasa járdemshi patent buzıwshılıq yamasa patentti buzıwǵa túrtki bolıw: (i) Facebook yamasa onıń qálegen filialları yamasa baylanıslı kompaniyaları tárepinen, bul talap Baǵdarlamalıq támiynatqa baylanıslı bolsa da, bolmasa da, (ii) eger bunday talap tolıǵı menen yamasa biraz Facebook yamasa onıń qálegen filialları yamasa baylanıslı kompaniyalarınıń qálegen baǵdarlamalıq támiynatı, ónimi yamasa xızmetinen kelip shıqsa, bul talap Baǵdarlamalıq támiynatqa baylanıslı bolsa da, bolmasa da, yamasa (iii) qálegen táreptiń Baǵdarlamalıq támiynatqa baylanıslı talabı; yamasa (b) Facebook-tıń qálegen patent talabındaǵı qanday da bir huqıqtıń jaramsız yamasa orınlanbaytuǵının tastıyıqlaw.

Bul ádettegiden tıs bap React paydalanıwshılar jámiyetinde ayırım qarama-qarsılıq hám talqılawlardı keltirip shıǵardı, sebebi ol Facebook-qa kóp jaǵdaylarda licenziyanı biykarlaw imkaniyatın beriwi múmkin edi. Mısalı, eger Facebook licenziya alıwshıǵa qarsı sud isin ashsa hám onı blogta yamasa basqa jerde járiyalaw arqalı "basqa háreket" qılıwǵa májbúrlese. Kóp adamlar Facebook bul toqtatıw babın ádalatsız paydalanıwı múmkin ekenliginen yamasa React-ti ónimge biriktiriw startap kompaniyanıń keleshektegi satıp alınıwın qıyınlastırıwı múmkinliginen qáweterlendi.[51] Jámiyettiń pikirlerine tiykarlanıp, Facebook 2015-jıldıń aprel ayında patent beriwdi anıǵıraq hám kóbirek ruqsat beriwshi etip jańaladı:[52]

Usı jerde berilgen licenziya, eger siz (yamasa siziń qálegen filialıńız, korporativ baylanıslı kompaniyańız yamasa agentińiz) tikkeley yamasa janapay túrde baslasańız, yamasa qálegen Patent Talabında tikkeley finanslıq máp kórseńiz, avtomat túrde hám eskertiwsiz toqtatıladı: (i) Facebook-qa yamasa onıń qálegen filialına yamasa korporativ baylanıslı kompaniyasına qarsı, (ii) eger bunday Patent Talabı Facebook-tıń yamasa onıń qálegen filialınıń yamasa korporativ baylanıslı kompaniyasınıń qálegen programmalıq támiynatı, texnologiyası, ónimi yamasa xızmetinen tolıq yamasa bir bólegi kelip shıqsa, qálegen tárepke qarsı, yamasa (iii) Programmalıq támiynatqa baylanıslı qálegen tárepke qarsı. [...] "Patent Talabı" dep qálegen patentti tikkeley, janapay yamasa járdemshi túrde buzıw yamasa buzıwǵa túrtki bolıw haqqında ayıplawdı óz ishine alǵan qálegen sud isi yamasa basqa háreket, sonıń ishinde qarsı talap yamasa qarsı dawa esaplanadı..[53]

Apache Programmalıq Támiynat Fondı bul licenziyalaw tártibin óziniń licenziyalaw siyasatı menen sáykes kelmeydi dep esapladı, sebebi ol "biziń programmalıq támiynatımızdı paydalanıwshılarǵa qáwip-qáterdi jetkeredi, bul licenziya beriwshiniń paydasına, licenziya alıwshınıń emes, sonlıqtan biziń universal donor bolıw haqqındaǵı Apache nızamlıq siyasatımızdı buzadı" hám "olar [Apache License 2.0] de tabılǵan shártlerdiń qosımsha toplamı emes hám olar [Apache License 2.0] sıpatında qayta licenziyalanıwı múmkin emes".[54] 2017-jıldıń avgust ayında Facebook Apache Fondınıń tómengi aǵım qáwipleri haqqındaǵı tastıyıqlawın biykarladı hám óz licenziyasın qayta qarawdan bas tarttı.[55][56] Keyingi ayda WordPress óziniń Gutenberg hám Calypso proektlerin React-tan basqa texnologiyaǵa ótkeriwdi sheshti.[57]

2017-jıl 23-sentyabrde Facebook kelesi háptede Flow, Jest, React hám Immutable.js ti standart MIT licenziyası boyınsha qayta licenziyalaytuǵının járiyaladı; kompaniya React tiń "veb ushın ashıq kodlı programmalıq támiynattıń keń ekosistemasınıń tiykarı" ekenin hám olar "texnikalıq emes sebepler boyınsha alǵa ilgerilewdi toqtatqısı kelmeytuǵının" bildirdi.[58]

2017-jıl 26-sentyabrde React 16.0.0 versiyası MIT licenziyası menen shıǵarıldı.[59] MIT licenziyasına ózgertiw React 15.6.2 versiyası menen 15.x shıǵarılım qatarına da kirgizilgen.[60]

Sonday-aq qarań

  • Angular (veb freymvork)
  • Backbone.js
  • Ember.js
  • Gatsby (JavaScript freymvork)
  • Next.js
  • TypeScript
  • Svelte
  • Vue.js
  • JavaScript tiykarlanǵan veb freymvorkların salıstırıw
  • Veb komponentler

Derekler

  1. 1,0 1,1 1,2 „React – A JavaScript library for building user interfaces.“ (en-US). reactjs.org. 8-aprel 2018-jılda túp nusqadan arxivlendi. Qaraldı: 7-aprel 2018-jıl. Silteme kórsetiwdegi qátelik: Invalid <ref> tag; name "reactjs.org-3" defined multiple times with different content
  2. „Chapter 1. What Is React? - What React Is and Why It Matters [Book“] (en). www.oreilly.com. 6-may 2023-jılda túp nusqadan arxivlendi. Qaraldı: 6-may 2023-jıl.
  3. Krill. „React: Making faster, smoother UIs for data-driven Web apps“. InfoWorld (15-may 2014-jıl). 12-iyun 2018-jılda túp nusqadan arxivlendi. Qaraldı: 23-fevral 2021-jıl.
  4. Hemel. „Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews“ (en-US). infoq.com (3-iyun 2013-jıl). 26-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 11-yanvar 2022-jıl.
  5. Dawson. „JavaScript's History and How it Led To ReactJS“ (en-US). The New Stack (25-iyul 2014-jıl). 6-avgust 2020-jılda túp nusqadan arxivlendi. Qaraldı: 19-iyul 2020-jıl.
  6. Dere 2017.
  7. Panchal 2022.
  8. „React Introduction“ (en-US). GeeksforGeeks (27-sentyabr 2017-jıl). Qaraldı: 12-oktyabr 2024-jıl.
  9. 9,00 9,01 9,02 9,03 9,04 9,05 9,06 9,07 9,08 9,09 Wieruch 2020.
  10. Schwarzmüller 2018.
  11. „Components and Props“. React. Facebook. 7-aprel 2018-jılda túp nusqadan arxivlendi. Qaraldı: 7-aprel 2018-jıl.
  12. 12,0 12,1 12,2 12,3 12,4 12,5 Larsen 2021.
  13. „Introducing Hooks“. react.js. 25-oktyabr 2018-jılda túp nusqadan arxivlendi. Qaraldı: 20-may 2019-jıl.
  14. „Hooks at a Glance – React“ (en). reactjs.org. 15-mart 2023-jılda túp nusqadan arxivlendi. Qaraldı: 8-avgust 2019-jıl.
  15. „What the Heck is React Hooks?“ (en). Soshace (16-yanvar 2020-jıl). 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  16. „Using the State Hook – React“ (en). reactjs.org. 30-iyul 2022-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  17. 17,0 17,1 17,2 „Using the State Hook – React“ (en). reactjs.org. 30-iyul 2022-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  18. „Using the Effect Hook – React“ (en). reactjs.org. 1-avgust 2022-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  19. „Hooks API Reference – React“ (en). reactjs.org. 5-avgust 2022-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  20. „Rules of Hooks – React“ (en). reactjs.org. 6-iyun 2021-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  21. „Building Your Own Hooks – React“ (en). reactjs.org. 17-iyul 2022-jılda túp nusqadan arxivlendi. Qaraldı: 24-yanvar 2020-jıl.
  22. „React Labs: What We've Been Working On – March 2023“ (en). react.dev. 26-iyul 2023-jılda túp nusqadan arxivlendi. Qaraldı: 23-iyul 2023-jıl.
  23. Abramov. „Introducing Zero-Bundle-Size React Server Components“ (en). react.dev (21-dekabr 2020-jıl). Qaraldı: 28-sentyabr 2024-jıl.
  24. Chourasia. „Convert Class Component to Function(Arrow) Component – React“. Code Part Time (8-mart 2023-jıl). 15-avgust 2023-jılda túp nusqadan arxivlendi. Qaraldı: 15-avgust 2023-jıl.
  25. „Mastering React Router – The Ultimate Guide“ (en-US) (12-iyul 2023-jıl). 26-iyul 2023-jılda túp nusqadan arxivlendi. Qaraldı: 26-iyul 2023-jıl.
  26. „Refs and the DOM“. React Blog. 7-avgust 2022-jılda túp nusqadan arxivlendi. Qaraldı: 19-iyul 2021-jıl.
  27. „React: The Virtual DOM“ (en). Codecademy. 28-oktyabr 2021-jılda túp nusqadan arxivlendi. Qaraldı: 14-oktyabr 2021-jıl.
  28. „ReactDOM – React“ (en). reactjs.org. 8-yanvar 2023-jılda túp nusqadan arxivlendi. Qaraldı: 8-yanvar 2023-jıl.
  29. „Reconciliation – React“ (en). reactjs.org. 8-yanvar 2023-jılda túp nusqadan arxivlendi. Qaraldı: 8-yanvar 2023-jıl.
  30. „React.Component – React“ (en). legacy.reactjs.org. 9-aprel 2024-jılda túp nusqadan arxivlendi. Qaraldı: 9-aprel 2024-jıl.
  31. „Draft: JSX Specification“ (en-US). JSX. Facebook (8-mart 2022-jıl). 2-aprel 2022-jılda túp nusqadan arxivlendi. Qaraldı: 7-aprel 2018-jıl.
  32. Hunt. „Why did we build React? – React Blog“ (en-US). reactjs.org (5-iyun 2013-jıl). 6-aprel 2015-jılda túp nusqadan arxivlendi. Qaraldı: 17-fevral 2022-jıl.
  33. „PayPal Isomorphic React“. medium.com (27-aprel 2015-jıl). 8-fevral 2019-jılda túp nusqadan arxivlendi. Qaraldı: 8-fevral 2019-jıl.
  34. „Netflix Isomorphic React“ (en-US). netflixtechblog.com (28-yanvar 2015-jıl). 17-dekabr 2016-jılda túp nusqadan arxivlendi. Qaraldı: 14-fevral 2022-jıl.
  35. „In Depth OverView“. Flux. Facebook. 7-avgust 2022-jılda túp nusqadan arxivlendi. Qaraldı: 7-aprel 2018-jıl.
  36. „Flux Release 4.0“. Github. 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 26-fevral 2021-jıl.
  37. Johnson. „Introduction to Flux – React Exercise“. Nicholas Johnson. 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 7-aprel 2018-jıl.
  38. Abramov. „The History of React and Flux with Dan Abramov“. Three Devs and a Maybe. 19-aprel 2018-jılda túp nusqadan arxivlendi. Qaraldı: 7-aprel 2018-jıl.
  39. „State Management Tools – Results“. The State of JavaScript. 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 29-oktyabr 2021-jıl.
  40. „React v16.8: The One with Hooks“. 8-yanvar 2023-jılda túp nusqadan arxivlendi. Qaraldı: 8-yanvar 2023-jıl.
  41. „Meeting Notes“. React Discuss. 22-dekabr 2015-jılda túp nusqadan arxivlendi. Qaraldı: 13-dekabr 2015-jıl.
  42. „reactjs/react-future – The Future of React“. GitHub. 13-iyul 2022-jılda túp nusqadan arxivlendi. Qaraldı: 13-dekabr 2015-jıl.
  43. „facebook/react – Feature request issues“. GitHub. 9-iyul 2022-jılda túp nusqadan arxivlendi. Qaraldı: 13-dekabr 2015-jıl.
  44. „React.js: The Documentary“. Youtube. Honeypot (10-fevral 2023-jıl). 19-yanvar 2024-jılda túp nusqadan arxivlendi. Qaraldı: 27-may 2024-jıl.
  45. Lardinois 2017.
  46. „React Fiber Architecture“. Github. 10-may 2018-jılda túp nusqadan arxivlendi. Qaraldı: 19-aprel 2017-jıl.
  47. „GitHub – acdlite/react-fiber-architecture: A description of React's new core algorithm, React Fiber“. github.com. 10-may 2018-jılda túp nusqadan arxivlendi. Qaraldı: 19-oktyabr 2018-jıl.
  48. „React v16.0“. react.js (26-sentyabr 2017-jıl). 3-oktyabr 2017-jılda túp nusqadan arxivlendi. Qaraldı: 20-may 2019-jıl.
  49. „React v18.0“ (en). reactjs.org. 29-mart 2022-jılda túp nusqadan arxivlendi. Qaraldı: 12-aprel 2022-jıl.
  50. „React CHANGELOG.md“. GitHub. 28-aprel 2020-jılda túp nusqadan arxivlendi. Qaraldı: 9-dekabr 2015-jıl.
  51. Liu. „A compelling reason not to use ReactJS“. Medium. 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 9-dekabr 2015-jıl.
  52. „Updating Our Open Source Patent Grant“. 8-noyabr 2020-jılda túp nusqadan arxivlendi. Qaraldı: 9-dekabr 2015-jıl.
  53. „Additional Grant of Patent Rights Version 2“. GitHub. 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 9-dekabr 2015-jıl.
  54. „ASF Legal Previously Asked Questions“ (en). Apache Software Foundation. 6-fevral 2018-jılda túp nusqadan arxivlendi. Qaraldı: 16-iyul 2017-jıl.
  55. „Explaining React's License“ (en). Facebook. 6-may 2021-jılda túp nusqadan arxivlendi. Qaraldı: 18-avgust 2017-jıl.
  56. „Consider re-licensing to AL v2.0, as RocksDB has just done“ (en). Github. 27-iyul 2022-jılda túp nusqadan arxivlendi. Qaraldı: 18-avgust 2017-jıl.
  57. „WordPress to ditch React library over Facebook patent clause risk“ (en). TechCrunch (15-sentyabr 2017-jıl). 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 16-sentyabr 2017-jıl.
  58. „Relicensing React, Jest, Flow, and Immutable.js“ (en). Facebook Code (23-sentyabr 2017-jıl). 6-dekabr 2020-jılda túp nusqadan arxivlendi. Qaraldı: 23-sentyabr 2017-jıl.
  59. Clark. „React v16.0§MIT licensed“. React Blog (26-sentyabr 2017-jıl). 3-oktyabr 2017-jılda túp nusqadan arxivlendi. Qaraldı: 18-oktyabr 2017-jıl.
  60. Hunzaker. „React v15.6.2“. React Blog (25-sentyabr 2017-jıl). 31-may 2022-jılda túp nusqadan arxivlendi. Qaraldı: 18-oktyabr 2017-jıl.