Shrnutí
V této lekci jste se naučili, že:
- Efekt je kód, který React spustí, až vykreslí komponentu, a slouží pro věci mimo React: titulek karty, časovače, načítání dat,
localStorage. Napíšete ho pomocíuseEffect(() => { ... }, [zavislosti]), importovaného z"react"stejně jakouseState. - Závislosti určují, kdy se efekt spustí: bez pole po každém vykreslení, s
[]jednou, když se komponenta objeví, s[den]na začátku a pokaždé, když sedenzmění. Patří do nich každá stavová proměnná a každá hodnota z props, kterou efekt používá. - Funkce, kterou efekt vrátí, je jeho úklid. React ji zavolá, když komponenta zmizí, a předtím, než efekt spustí znovu. Interval ho potřebuje:
return () => clearInterval(id);, tedy funkci, ne hned zavolanéclearInterval(id). - Interval vytvořený při prvním vykreslení si drží hodnoty z tohoto vykreslení, a tak stav mění aktualizační funkcí:
setSekundy((sekundy) => sekundy + 1). - Data se načítají v efektu, ve funkci
async, kterou efekt zavolá. Data,nacitaniachybave stavu říkají stránce, co má ukázat, aodpoved.okříká, jestli server soubor poslal. - Když si má aplikace stav zapamatovat, uložte ho v efektu, který na něm závisí, a načtěte ho funkcí předanou
useState, kterou React zavolá jen pro první vykreslení.
V další lekci, Miniprojekt: Stopky, postavíte stopky, jejichž interval běží v efektu: spustí se, zastaví, vrátí se na nulu a měří kola.
Nejdřív si ale vše procvičte na programu festivalu s výběrem pódia, který načte kapely ze souboru a zapamatuje si vybrané pódium.
Jak psát:
"Shift + ů
{Alt Gr + b
}Alt Gr + n
[Alt Gr + f
]Alt Gr + g
<Alt Gr + ,
>Alt Gr + .
/Shift + ú
|Alt Gr + w
&Alt Gr + c
`Alt Gr + ý
$Alt Gr + ů
Pokyny
Při spuštění aplikace načtěte v efektu kapely z kapely.json a ukazujte Načítám…, dokud nedorazí.
Zapamatujte si vybrané pódium: pokaždé, když se změní, uložte podium do localStorage pod klíčem podium, a při spuštění aplikace ho načtěte, s "vse", když nic uložené není. Vyzkoušejte to: vyberte Stan a klikněte na Spustit.