React je javascriptová knihovna, která je určená pro stavbu uživatelských interface. Je spravovaná Facebookem a komunitou individuálních vývojářů a společností.

React může být použit jako základ pro vývoj jednostránkových nebo mobilních aplikací. Komplexní aplikace psané v Reactu obvykle vyžadují použití dalších knihoven pro správu stavů, routing nebo interakci s některým API.

Historie

React byl vytvořen Jordanem Walkem, který dělá softwarového inženýra pro Facebook. Byl ovlivněn XHP, což je HTML komponentní Framework pro PHP. Byl poprvé deployován na newsfeed Facebooku v roce 2011 a později byl využit v roce 2012 na Instragram.com. Na konferenci JSConf US v květnu 2013 se stal open-sourcovým.

V dubnu 2017 Facebook oznámil vznik React Fiber, což je nový jádrový algoritmus knihovny React pro stavbu uživatelských interface. React Fiber se měl stát základem budoucích vylepšení a vývoje funkcionalit v rámci Frameworku React.

Výhody použití React

  • Snadno se učí. React je snadné se naučit i používat a je k němu k dispozici bohatá dokumentace, tutoriály a tréninkové zdroje. Kdokoliv, kdo má zkušenosti s JavaScriptem může pochopit React a začít ho během několika dní používat.
  • Znovupoužitelné komponenty. React je založený na komponentách. Můžete začít malými segmenty, které následně použijete ke stavbě větších a následně ty větší složíte do celých aplikací. Každá komponenta má vlastní logiku a ovládání a mohou být použity, kdykoliv je potřeba. Znovupoužívání kódu usnadňuje vývoj i údržbu kódu. Zároveň napomáhá s implementací konzistentního kódu napříč celým projektem.
  • Virtuální DOM. Obvykle je při vývoji aplikace, která pracuje s velkým množstvím uživatelských dat a jejich aktualizací potřeba pečlivě zvažovat strukturu aplikace s ohledem na výkon. I s rychlými klientskými platformami a JavaScriptovými enginy může extenzivní DOM manipulace vést k úzkému hrdlu, což vede ke špatné uživatelské zkušenosti. React toto řeší za pomoci virtuálního DOMu. Veškeré změny zobrazení se tak nejprve spustí na virtuálním DOMu, který je v paměti a ne na obrazovce. Efektivní algoritmus následně vyhodnotí, co je potřeba změnit na reálném DOMu a vybere nejefektivnější způsob, jak tyto změny aplikovat.
  • Výborné vývojářské nástroje. Nástroje dostupné pro Chrome nebo Firefow jsou ve formě rozšíření pro React. To umožňuje analýzu hierarchie komponent na virtuálním DOMu. Můžete vybírat jednotlivé komponenty a zkoumat a editovat jejich vlastnosti a statusy.

Nevýhody použití React

  • Obrovská rychlost vývoje. Prostředí se neustále mění a vývojáři se tak musí neustále znovu učit nové způsoby, jak přistupovat k problémům. Všechno se vyvíjí a rychlost těchto změn je opravdu mimořádná.
  • Dokumentace. Dokumentace je k dispozici mnoho, ale nedokáže plně držet krok s rychlými změnami. Vývojáři si tak často píší vlastní dokumentaci pro specifické nástroje, které využívají ve svém současném projektu.
  • SEO. Podle mnoha názorů Google a další vyhledávací nástroje neindexují nebo nedostatečně indexují dynamické webové stránky. Tyto obavy se nikdy zcela nepodařilo prokázat a Google sám tvrdí, že jeho nástroje jsou schopné číst dynamický obsah.
  • Riziko velkých projektů. U všech velkých projektů hrozí ztráta kontroly nad během dat a komponent. V Reactu při špatném iniciálním návrhu architektury hrozí, že bude potřeba otevírat 4-5 souborů, aby bylo možné aplikovat změny.
  • Riziko nepřehlednosti komponent. Přestože komponenty jako takové mohou být užitečné, v dlouhém období používání hrozí, že se stanou nečitelnými a nespravovatelnými.