Praktické příklady a cvičení
Tato kapitola se věnuje praktickým aplikacím a důležitým dovednostem pro práci s Reactem. Provedeme si detailní příklad tvorby To-do aplikace a ukážeme si, jak efektivně řešit problémy pomocí nástrojů pro debugování.
Nejlepší způsob, jak si osvojit React, je pustit se do tvorby vlastních projektů. Zde se zaměříme na dva typy projektů: komplexnější aplikaci pro správu stavu a příklady demonstrující specifické úlohy.
Vytvoříme krok za krokem jednoduchou To-do aplikaci, která nám ukáže, jak pracovat se stavem komponent a předávat data mezi nimi.
Cíle:
- Vytvořit komponentu pro vstup nového úkolu.
- Vytvořit komponentu pro zobrazení seznamu úkolů.
- Implementovat přidání nového úkolu do seznamu.
- Implementovat označení úkolu jako splněného.
- Implementovat smazání úkolu.
- Použít stav k ukládání a aktualizaci seznamu úkolů.
Kroky:
- Inicializace projektu: Vytvoříme nový React projekt pomocí Create React App nebo Vite.
- Struktura komponent: Navrhneme strukturu komponent - hlavní
Appkomponenta,TodoInputpro vstup,TodoListpro seznam aTodoItempro jednotlivý úkol. - Stav v
Appkomponentě: VAppkomponentě inicializujeme stav (např. pomocíuseState) pro uložení pole s úkoly. Každý úkol bude objekt sid,textacompletedvlastnostmi. - Komponenta
TodoInput: Vytvoříme komponentuTodoInputs<input>polem a tlačítkem. Tato komponenta bude přijímat callback funkci z rodičovské komponenty (App) pro přidání nového úkolu. - Předání dat z
TodoInputdoApp: Při kliknutí na tlačítko vTodoInputzavoláme callback funkci předanou zApp, předáme jí text nového úkolu. - Aktualizace stavu v
App: Callback funkce vAppobdrží text nového úkolu a aktualizuje stav (pole úkolů) přidáním nového úkolu s unikátnímidacompleted: false. - Komponenta
TodoList: Vytvoříme komponentuTodoList, která bude přijímat pole úkolů jako prop a pomocí metodymapbude vykreslovat jednotlivé komponentyTodoItem. - Komponenta
TodoItem: Vytvoříme komponentuTodoItem, která bude přijímat jeden úkol jako prop. Zobrazí text úkolu a tlačítka pro označení jako splněný a pro smazání. - Manipulace s úkoly v
App(splnění/smazání): VAppkomponentě definujeme další funkce (callbacky) pro označení úkolu jako splněného a pro smazání. Tyto funkce budou předány doTodoLista následně do jednotlivýchTodoItemkomponent. Tyto funkce budou aktualizovat stav (pole úkolů) vApp. - Předání callbacků do
TodoItem: Předáme callback funkce pro splnění a smazání doTodoItemkomponent přesTodoList. - Implementace akcí v
TodoItem: VTodoItemkomponentě při kliknutí na příslušná tlačítka zavoláme předané callback funkce siddaného úkolu.
Tento projekt demonstruje základní principy práce se stavem v Reactu, předávání dat přes props a interakci mezi komponentami.
Kromě komplexnějších projektů se hodí procvičovat si specifické úlohy. Zde jsou některé nápady:
- Jednoduchá kalkulačka: Procvičí práci s čísly a základní matematické operace.
- Zobrazení seznamu dat z API: Ukáže, jak načítat data z externích zdrojů (např. pomocí
fetchnebo Axios) a zobrazovat je v komponentách. - Formulář s validací: Procvičí práci s formuláři, sbírání dat z inputů a základní validaci.
- Jednoduchá galerie obrázků: Ukáže práci s obrázky, zobrazování seznamu a detailu obrázku.
Tyto menší projekty pomohou posílit pochopení jednotlivých konceptů Reactu v izolovaných scénářích.
Debugování je nezbytnou součástí vývoje softwaru. V Reactu máme k dispozici skvělé nástroje, které nám pomáhají identifikovat a řešit problémy.
React Developer Tools:
React Developer Tools jsou rozšíření pro prohlížeče (Chrome, Firefox), které vám umožňují prohlížet hierarchii komponent, kontrolovat a upravovat jejich stav (state) a props, a sledovat renderování.
Klíčové vlastnosti React DevTools:
- Komponenty: Zobrazení stromu komponent vaší aplikace. Můžete kliknout na jednotlivé komponenty a vidět jejich props a stav.
- Profiler: Měření výkonu renderování komponent, identifikace úzkých míst.
- Props a State: Možnost inspekce a dokonce úpravy props a stavu komponent v reálném čase. To je velmi užitečné pro testování různých scénářů.
- Source: Odkaz na zdrojový kód komponenty (pokud je k dispozici).
Jak použít React DevTools:
- Nainstalujte si rozšíření pro váš prohlížeč.
- Otevřete vývojářské nástroje prohlížeče (obvykle F12).
- Měli byste vidět novou záložku "Components" a "Profiler".
- Vyberte záložku "Components" a prozkoumejte hierarchii vašich React komponent.
Nativní nástroje prohlížeče:
Kromě React DevTools jsou pro debugování užitečné i standardní nástroje prohlížeče:
- Console: Použijte
console.log()k vypsání hodnot proměnných nebo stavu v různých částech vaší aplikace. To je základní, ale velmi účinný způsob debugování. - Sources (Zdroje): Zde můžete nastavovat breakpointy v JavaScriptovém kódu. Aplikace se při dosažení breakpointu zastaví, a vy můžete krok za krokem procházet kód, sledovat hodnoty proměnných a tok programu.
- Network (Síť): Užitečné pro debugování problémů s načítáním dat z API. Můžete sledovat HTTP požadavky a odpovědi.
Tipy pro efektivní debugování:
- Zúžte problém: Snažte se identifikovat, kde přesně k problému dochází. Pomocí
console.log()postupně zúžujte oblast hledání. - Kontrolujte props a stav: React DevTools jsou klíčové pro pochopení, jaká data komponenty dostávají a jaký je jejich vnitřní stav.
- Použijte breakpointy: Pokud je problém složitější, breakpointy vám umožní podrobně sledovat tok kódu.
- Izolujte komponenty: Pokud je problém v konkrétní komponentě, zkuste ji na chvíli renderovat samostatně s fixními daty, abyste eliminovali vliv ostatních částí aplikace.
- Čtěte chybové zprávy: React a JavaScript obvykle poskytují užitečné chybové zprávy v konzoli prohlížeče. Pečlivě si je přečtěte a snažte se pochopit, co signalizují.
Debugování je dovednost, která se zlepšuje praxí. S pomocí React DevTools a nástrojů prohlížeče budete schopni rychleji identifikovat a řešit problémy ve vašich React aplikacích.