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í.

6. diel - Kalkulačka v React - Projekt a rozdelenie na komponenty

V predchádzajúcom cvičení, Riešené úlohy k 1.-5. lekcii React, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.

Už vieme pracovať s vlastnosťami a stavmi komponentov. Teraz si vyskúšame, ako sa skladajú React aplikácie z viacerých komponentov a ako medzi týmito komponentmi odovzdávať dáta. Tiež použijeme prvú knižnicu.

Vytvoríme si jednoduchú kalkulačku, ktorá bude vyzerať asi takto:

Kalkulačka v React - Základy React

Založenie projektu

V priečinku s projektmi si otvoríme nové okno príkazového riadka. Príkazom create-react-app vytvoríme nový React projekt s názvom calculator:

Windows PowerShell
PS C:\Users\sdrac\Dropbox> npx create-react-app@^5.0.1 calculator

Ďalej prejdeme do priečinka projektu príkazom cd:

Windows PowerShell
PS C:\Users\sdrac\Dropbox> cd calculator

Inštalácia knižnice react-select

React obsahuje jednoduchú knižnicu na obsluhu HTML elementu <select>, ktorý budeme používať na výber operácie kalkulačky. Knižnica nám poskytuje nasledujúce výhody:

  • Jednoduché zadávanie hodnôt options odovzdaním poľa objektov
  • Vybraná položka je vrátená ako objekt
  • Jednoduché získavanie dát pomocou udalosti onChange
  • Podporuje aj asynchrónne načítanie možností
  • Prispôsobenie štýlov (ak ste niekedy skúšali štýlovať <select> v CSS, určite tušíte, že táto knižnica bude významnou pomocou)

Select potom vyzerá takto:

Súčasť React Select - Základy React

Knižnicu si do projektu nainštalujeme príkazom npm i:

Windows PowerShell
PS C:\Users\sdrac\Dropbox\calculator> npm i react-select@^5.6.1

Týmto spôsobom budeme do našich React aplikácií aj v budúcnosti inštalovať užitočné knižnice.

Opäť sme uviedli aj presnú verziu komponentu, aby sme všetci pracovali s rovnakou verziou. Keď časť @^5.6.1 vynecháme, použije sa najnovšia verzia, ktorá ale niekedy môže oproti lekcii obsahovať nejakú drobnú zmenu.

Nakoniec projekt spustíme príkazom npm start:

Windows PowerShell
PS C:\Users\sdrac\Dropbox\calculator> npm start

Priečinok calculator/ otvoríme vo VS Code.

HTML kostra public/index.html

Súbor index.html v priečinku public/ sme doteraz neupravovali. Jedná sa o samotnú hlavnú HTML stránku, do ktorej sa potom vkladá komponent App. Teraz obsah tejto stránky premažeme a zmeníme titulok aplikácie. Kód stránky upravíme do nasledujúcej podoby:

<!DOCTYPE html>
<html lang="en">

<head>
    <!-- Essential information to the browser  -->
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />

    <!-- Application description and title. -->
    <meta name="description" content="A simple calculator using the React library by Ictdemy.com/">
    <title>React calculator | Ictdemy.com</title>

    <!-- React icon. -->
    <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
</head>

<body>
    <noscript>To run this application, you must enable JavaScript.</noscript>

    <!-- The root of our application's component structure. -->
    <div id="root"></div>
</body>

</html>

Vidíme, že sa jedná o štandardnú štruktúru HTML stránky. V stránke samozrejme musíme ponechať element s id root, do ktorého sa potom komponent App vloží. Čo stojí za zmienku, je vychytávka v podobe %PUBLIC_URL%, ktorá nám vždy správne doplní cestu do nášho priečinka public/ ;) Bude sa vám v budúcnosti hodiť, až do komponentov budete vkladať obrázky a ďalšie zdroje.

React komponenty

Pri práci s knižnicou React je naším hlavným zameraním tvorba používateľského rozhrania (UI) aplikácie. Preto nie je pred začatím práce na škodu si:

  • najskôr rozmyslieť HTML štruktúru stránky/kompo­nentu,
  • neskôr túto štruktúru vhodne rozdeliť do viacerých React komponentov,
  • pridať požadovanú funkcionalitu pomocou manipulácie s vlastnosťami a stavom komponentov.

Krok 1 - Rozmyslenie HTML štruktúry stránky

Ako teda bude vyzerať stránka s našou kalkulačkou?

Rozloženie našej kalkulačky je pomerne jednoduché. Jej HTML štruktúra by mohla vyzerať nejako takto (kód nižšie zatiaľ nikam nepíšeme, len sa pozrieme, čo za HTML elementy bude kalkulačka obsahovať):

<form>
    <label for="a">
        First number: <input id="a" type="number" name="a" required />
    </label>
    <label for="b">
        Second number: <input id="b" type="number" name="b" required />
    </label>
    <label for="operation">
        Operation:
        <select id="operation" name="operation" required>
            <option value="">--Select an operation--</option>
            <option value="add">Addition</option>
            ...
        </select>
    </label>
    <input type="submit" value="Calculate" />
</form>
<div>Result: 10</div>

Ak by sme stránke nenadefinovali žiadne štýly, vyzerala by asi takto:

Tvoja stránka
localhost

Krok 2 - Rozdelenie HTML štruktúry do React komponentov

Teraz je čas rozdeliť túto stránku na React komponenty a následne ju pomocou nich poskladať.

Pre kvalitnú demonštráciu použitia knižnice React si štruktúru podrobne rozdelíme. Kalkulačka bude zložená z týchto React komponentov:

Calculator components - Základy React

Reálne by sme mohli zobrazovať výsledok priamo v komponente kalkulačky, ale takto si aspoň lepšie vyskúšame, ako si komponenty medzi sebou posielajú dáta.

Začneme tými najmenšími komponentmi a postupne ich budeme skladať do seba ako stavebnicu. Komponent na výber operácie máme už v React pripravený, tie ďalšie si vytvoríme sami.

Pre tieto naše nové komponenty si čisto kvôli prehľadnosti vytvoríme priečinok src/calculator/. Ten bude obsahovať komponenty týkajúce sa kalkulačky. Alternatívne by sme si mohli priečinok pomenovať aj components/, ale často sa stáva, že sa aplikácia rozrastie a bude vyžadovať ďalšie a ďalšie komponenty. A všetky v jednom priečinku by boli neprehľadné. Preto je lepšie na toto myslieť od začiatku a vytvárať priečinky na súvisiace komponenty, nie na úplne všetky komponenty.

Nabudúce, v lekcii Kalkulačka v React - Tvorba komponentov, si postupne vytvoríme komponenty na zadanie čísla, vypísanie výsledku a pre formulár kalkulačky.


 

Predchádzajúci článok
Riešené úlohy k 1.-5. lekcii React
Všetky články v sekcii
Základy React
Preskočiť článok
(neodporúčame)
Kalkulačka v React - Tvorba komponentov
Článok pre vás napísal Jindřich Máca
Avatar
Užívateľské hodnotenie:
8 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