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.