Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - Úvod do React

Vitajte pri prvej lekcii online kurzu programovania v populárnej javascriptovej knižnici React, niekedy tiež zvanej React.js. React sa využíva na tvorbu moderných používateľských rozhraní, rozdeľuje aplikáciu do komponentov, optimalizuje vykresľovanie a uľahčuje prácu ďalšími spôsobmi, ktoré si v kurzoch vysvetlíme. Vyskúšame si základné princípy Reactu vrátane práce s webovým API a vytvoríme niekoľko reálnych aplikácií, okrem iného napr. prehliadač pokémonov:

Ukážka aplikácie na prezeranie pokémonov - Základy React

V dnešnom React tutoriále si knižnicu predstavíme spolu so základnými princípmi, ktoré už v budúcej lekcii začneme využívať.

Minimálne požiadavky kurzu

Než sa pustíme do samotnej práce s React, treba ešte spomenúť vyžadované znalosti. Ku všetkým máme tu na sieti kurzy, takže pokiaľ niečo z toho náhodou nepoznáte, absolvujte prosím najskôr príslušný kurz.

Budete nevyhnutne potrebovať:

Výhodou sú znalosti:

Úvod do React

Logo React.js - Základy React

React je open-source javascriptová knižnica pre tvorbu používateľského rozhrania (anglicky UI ako User Interface). Vyvinula ju spoločnosť Meta (predtým Facebook).

Určite ste si už skúsili, že manuálna obsluha formulárov v JavaScripte, ich validácia alebo obnovovanie rôznych častí stránky novými dátami, nie sú práve triviálne úlohy. S týmto všetkým nám React pomôže a vo výsledku budeme mať aplikáciu vytvorenú rýchlejšie a kvalitnejšie. Dôležité je tiež rozdelenie aplikácie do komunikujúcich komponentov, čím sa zjednoduší.

Webové API

Používateľské rozhrania v React typicky komunikujú s nejakým webovým API serverom, z ktorého získavajú dáta, prípadne mu dáta posielajú. Vďaka tomu môžeme React aplikáciu jednoducho používať na viacerých zariadeniach a máme stále aktuálne dáta, pretože sú uložené na serveri. Táto serverová časť aplikácie môže byť napísaná aj v JavaScripte, napr. v prostredí Node.js. React sa však používa prakticky s akýmkoľvek ďalším programovacím jazykom bežiacim s databázou na serveri (Java, C#, PHP...).

React je knižnica, nie komplexný framework

Na rozdiel od rôznych kompletných frameworkov (napr. Angular) sa React sústredí na jednu špecifickú oblasť - UI. Ak ste oboznámení s konceptom MVC architektúry, React tvorí práve a iba view, teda pohľadovú vrstvu aplikácie, ktorá prezentuje dáta používateľovi. React sa z tohto dôvodu s obľubou používa s ďalšími knižnicami a existuje okolo neho celý ekosystém. Ten je potom predmetom nadväzujúcich kurzov. Na účely tohto kurzu si však vystačíme s takmer čistým Reactom.

React je v súčasnej dobe na trhu práce jednou z najobľúbenejších a najžiadanejších technológií. Určite je teda skvelou voľbou ako ďalšia znalosť webového programátora, ktorú je možné využiť na front-end väčšiny bežných aplikácií.

Využitie Reactu

Keďže je React knižnicou úzko zameranou iba na používateľské rozhranie aplikácie, kombinuje sa v rámci celej aplikácie s ďalšími knižnicami so značne rozdielnym prístupom aj architektúrou. React sa potom v rámci týchto použití vždy stará len o vykreslenie používateľského rozhrania. Pre lepšiu predstavu si uveďme niekoľko príkladov:

  • Tvorba tzv. single-page aplikácií (SPA). SPA je webová stránka v React, ktorá komunikuje s webovým API. Aplikácia sa načíta len raz a potom reaguje už bez prenačítania stránky, ako keby jediná stránka obsahovala celú aplikáciu, od toho je odvodený aj názov. Ako SPA je dnes riešená väčšina moderných webových aplikácií, ako sú napr. Google Docs alebo Spotify.
Spotify - Základy React
  • Ďalšou možnosťou je použitie Reactu pre vykresľovanie webových stránok na strane servera (server-side rendering), kde sa používa napr. v kombinácii s knižnicou Next.js v serverovom prostredí Node.js.
  • Ďalej ho môžeme využiť napr. v kombinácii s knižnicou Gatsby v rámci vykresľovania statických webových stránok orientovaných na obsah, kde sa vsádza predovšetkým na rýchlosť predvykresleného HTML a CSS.
  • V neposlednom rade by sme nemali zabudnúť na projekt React Native pre tvorbu natívnych mobilných aplikácií pomocou JavaScriptu a Reactu.

Ako vidíme, možností je množstvo. My sa v rámci tohto tutoriálu zameriame predovšetkým na knižnicu React ako takú a ďalšiu funkcionalitu doplníme použitím čistého JavaScriptu. Tiež sa pre jednoduchosť budeme orientovať na prostredie webových aplikácií.

Ako React aplikácie fungujú

Než sa pustíme do tvorby React aplikácií, zoznámime sa s hlavnými princípmi, na ktorých fungujú.

React komponenty

Základné stavebné kamene React aplikácií tvoria tzv. komponenty (components). To sú rôzne znovupoužiteľné HTML elementy so zapuzdrenou funkcionalitou, ktorých skladaním vzniká komplexná UI aplikácia. Komponentom môže byť napr. prihlasovací formulár alebo hviezdičkové hodnotenie produktu. Rozdelením aplikácie na menšie celky je aplikácia prehľadnejšia a vývoj jednoduchší.

React komponenty potom majú svoje:

  • vstupné vlastnosti (props) a
  • svoj vnútorný stav (state).

React dokáže automaticky reagovať na zmenu stavov a prekresľovať aplikáciu len kedy a kde je to potrebné. Spôsob práce v React je tzv. deklaratívny. To znamená, že definujeme stavy a prvky rozhrania a neriešime napr. ako sa má prekresľovať pri zmene. Práve to je jedným z dôvodov, prečo je táto knižnica tak populárna.

Komponenty je možné v React vytvárať buď ako funkcie alebo ako triedy (class). Pri tvorbe UI má funkcionálny spôsob hneď niekoľko výhod a preto prevláda nad objektovým.

React hooks

React nám pre funkcionálne komponenty poskytuje tzv. React hooks. To sú jednoduché funkcie, ktorých volaním môžeme pokryť všetku funkcionalitu tried a objekty tak vôbec nemusíme používať. Zbavenie sa objektov možno môže znieť neštandardne, ale pripomeňme si, že pracujeme s UI časťou aplikácie, ktorej kód obsahuje HTML, a preto by mal byť minimalistický. Súčasne hooks poskytujú väčšiu flexibilitu pri extrakcii, testovaní a znovupoužití kódu.

Staršiu syntax komponentov pomocou kľúčového slova class si tiež ukážeme.

JSX - HTML kód v JavaScripte

Aby bola tvorba React aplikácií ešte jednoduchšia, okrem funkcionálnej paradigmy sa najčastejšie používa aj JSX. To je skratkou Java Script + XML a umožňuje písať HTML kód priamo do JavaScriptu. A to nie ako klasický string, ale naozaj ako HTML elementy. React si s ním opäť pekne rozumie a celkovo sa nám tak zjednoduší vytváranie HTML elementov aj samotných komponentov.

Použitie JSX môže vyzerať napr. takto:

return <h1>Example JSX</h1>;

Nepoužili sme žiadne úvodzovky, pretože výsledkom nie je text, ale naozaj nový element.

Samozrejme takáto kombinácia nebude len tak fungovať priamo v prehliadači a kód sa musí prvýkrát preložiť potrebnými nástrojmi. To za nás urobia aplikácie z ekosystému React (konkrétne Babel, ktorý už budeme mať po založení React projektu nakonfigurovaný). Používanie JSX nie je pri písaní kódu v React povinné, rozhodne sa ale oplatí a je k React oficiálne odporúčané. Preto ho aj my budeme používať.

V budúcej v lekcii, Vytvorenie React projektu, si vytvoríme React projekt pre prvú jednoduchú aplikáciu pomocou Node.js.


 

Všetky články v sekcii
Základy React
Preskočiť článok
(neodporúčame)
Vytvorenie React projektu
Článok pre vás napísal Jindřich Máca
Avatar
Užívateľské hodnotenie:
12 hlasov
Autor se věnuje převážně webovým technologiím, ale má velkou zálibu ve všem vědeckém, nejen ze světa IT. :-)
Aktivity