- React je knihovna pro tvorbu uživatelských rozhraní vyvinutá společností Facebook.
- Jeho hlavním účelem je usnadnění vývoje webových aplikací, zejména těch, které vyžadují časté aktualizace dat a interakci s uživatelem.
Charakteristika
- Komponenty: React je založen na konceptu komponent, což jsou samostatné, znovupoužitelné části uživatelského rozhraní. Každá komponenta může mít vlastní stav a metody.
- Virtuální DOM: React používá virtuální DOM k optimalizaci výkonu.
- Namísto toho, aby přímo manipuloval s reálným DOM (Document Object Model), React pracuje s jeho virtuální reprezentací (Shadow DOM), což umožňuje efektivnější aktualizace a minimalizaci re-rendering.
- Jednosměrný tok dat: Data v React aplikacích obvykle cirkulují jedním směrem - od nadřazených komponent k dceřiným komponentám. To zlepšuje předvídatelnost a spravovatelnost aplikace.
- Declarative syntax: Syntaxe Reactu je deklarativní, což znamená, že se zaměřuje na popis toho, jak by měl vypadat výsledný stav aplikace, namísto toho, jak ho dosáhnout.
- Životní cyklus komponent: Každá komponenta v Reactu prochází určitými fázemi životního cyklu, jako je inicializace, aktualizace a odstranění. Toto umožňuje programátorům připojit k těmto událostem vlastní logiku.
- JSX: JSX je syntaxe pro psaní HTML podobných struktur přímo v JavaScriptu. Tato kombinace HTML a JavaScriptu umožňuje vytvářet komponenty s přehlednějším kódem.
Použití
- React je často využíván pro vývoj moderních webových aplikací a jednostránkových aplikací (Single Page Applications - SPA).
- Je populární pro tvorbu uživatelsky přívětivých, interaktivních a rychlých webových rozhraní.
- Jeho ekosystém zahrnuje také mnoho doplňků a knihoven, které zjednodušují práci s ním, jako například React Router pro routování, Redux pro správu stavu aplikace nebo Styled Components pro stylování komponent pomocí CSS v JavaScriptu.
JSX vs nízkoúrovňový přístup
nízkoúrovňový přístup
JSX
React Hooky
- Doposud měli možnost mít stav pouze objektové komponenty.
- React hooks byly představeny v zatím poslední verzi knihovny React a umožňují vytvářet funkční komponenty s vnitřním stavem.
- Tímto objektové komponenty ztrácejí smysl (ve skutečnosti jsou v knihovně postupně utlačovány, jejich odstranění se ale zatím neplánuje).
useState
Hook
useState
useEffect
Hook
useEffect
- umožňuje provádět vedlejší efekt (například načtení dat, výpis do konzole, změna DOM a další).
- useEffect je spuštěn při každém renderování (tedy i při prvním).
- Pomocí tohoto hooku lze i získávat data:
useContext
hook
useContext
- Dalším užitečným hookem je useContext, který umožňuje vytvářet globální stav. To je poněkud nepřesné označení, jelikož React komponenty jsou uspořádány ve stromu a jednotlivé vlastnosti mohou být přejímány od rodičů v tomto stromu (pokud je uvedeno).
- useContext umožňuje vytvářet props, které jsou sdíleny v daném podstromu.
Další hooky
-
Za zmínku ještě stojí
useReducer
hook, který z aktuálního stavu vytváří stav nový. Například přepínánítrue
afalse
, které je ukázáno níže.const [checked, toggle] = useReducer(checked => !checked, false);
-
Užitečný hook je také
useMemo
, který umožňuje zapamatovat při renderování vypočítané hodnoty. Ty následně nemusí být opět přepočítávány (pouze pokud dojde ke změně hodnot, ze který byly vypočítány). Tento hook slouží pro optimalizaci výkonu. -
Hooky je možné volat pouze na top-level úrovni. Nesmí být v cyklech a podmínkách (můžou je ale obsahovat). Hook by měl být volán pouze uvnitř komponenty. ESlint v create-react-app tato pravidla hlídá.
-
Kromě vestavěných hooks je možné vytvářet vlastní.
Navigace
Předchozí: Technologie AJAX a její použití Následující: Možnosti tvorby nativních aplikací pomocí webových technologií Celý okruh: 3. Programovací jazyky a programování