Lekce 16 · Projekt
Závěrečný projekt: Kanban
Poskládej všechno dohromady do jedné aplikace.
Načítám lekci…
Lekce 16 · Projekt
Poskládej všechno dohromady do jedné aplikace.
Načítám lekci…
Nikdo nestaví dům tak, že nejdřív pověsí záclony a pak hledá, kam by postavil zdi. Postup je opačný: plán (kde budou místnosti), základy, hrubá stavba, pak rozvody elektřiny a vody – a vybavení až nakonec. Každá fáze stojí na té předchozí, a když se základy udělají dobře, další patra drží sama.
Aplikace se staví stejně:
Teď je čas poskládat všechno dohromady. Postav Kanban tabuli – malou, ale skutečnou aplikaci, ve které použiješ většinu toho, co ses naučil. Postupuj po milnících a každý si odškrtni.
Než se pustíš do celého kanbanu, rozehřej se na jeho nejmenší části – jedné kartě.
VÝZVA: Karta úkolu
Seznam úkolů i funkce pro smazání jsou hotové. Komponenta TaskCard zatím nic neukazuje.
1. V TaskCard vykresli název úkolu: {task.title}
2. Tlačítko „ד ať zavolá onDelete(task.id)
Tohle je nejmenší kousek kanbanu, který stavíš v projektu níže.row, stack, card, list, btn, input nebo muted jsou hotové styly kurzu v src/styles.css (row = prvky vedle sebe, stack = pod sebou, card = rámeček, muted = šedý text).Načítám interaktivní část…
Než začneš psát, zamysli se nad těmito otázkami. Každá odpovídá jedné představě z kurzu: sešit (stav), bankovní účet (reducer), rozhlas (Context), šuplík (ref), světlo v místnosti (efekt). Vzorové řešení volí odpovědi v pravém sloupci – tvoje mohou být jiné.
| Otázka | Vzorové řešení | Proč |
|---|---|---|
| Kde žijí karty? | useReducer + Context | Mnoho různých akcí nad stejnými daty (bankovní účet) a potřebuje je víc komponent (rozhlas). Stav a dispatch v oddělených kontextech. |
| Ukládám sloupec do karty, nebo karty do sloupců? | column v kartě, ploché pole | Přesun = změna jedné hodnoty, žádné kopírování mezi poli. Počty karet ve sloupcích se jen spočítají. |
| Kde je text hledání? | Lokální useState v Board | Věc v kapse jedné komponenty. V aplikaci s routerem by patřil do adresy (přání k pokoji). |
| Rozpracovaná úprava karty? | Lokální koncept v modalu | Papíry na pracovním stole: do „banky“ jde až po Uložit, takže Zrušit nemusí nic vracet. |
| Jak funguje undo? | Historie v reduceru | Reducer je jediné místo, kde vznikají změny – výpis z účtu je zadarmo. |
| Ukládání? | Efekt synchronizuje cards → localStorage | localStorage je okolní svět (světlo v místnosti); líná inicializace reduceru ho při startu načte. |
Vzorové řešení si vyzkoušej v záložce „Vzorové řešení“ – ukládá se do localStorage, takže přežije reload.
Střední a těžké výzvy jsou bonus pro přihlášené. Registrace je zdarma – stačí e-mail, žádné heslo.