Mentální model React Hooks
Hooky zpřístupňují stavové funkce Reactu. Jejich pořadí zůstává stabilní a efekty synchronizují React s okolním světem.
Jak to funguje
useState volej na nejvyšší úrovni komponenty a odvozené hodnoty, například filtrovaný seznam, počítej během renderování; pokud se potřebuješ přihlásit k události prohlížeče nebo synchronizovat externí systém, použij efekt s úklidem, aby odběr nepřežil komponentu, které patří.
function Search({ items }) {
const [query, setQuery] = useState("");
const visible = items.filter(item => item.includes(query));
return <>
<input aria-label="Search" value={query}
onChange={e => setQuery(e.target.value)} />
<p>{visible.join(", ")}</p>
</>;
}Přečíst dokumentaciČastý omyl
Odvozené hodnoty obvykle patří do renderu, ne do efektu.
Krátké procvičení
1. Proč nevolat Hooky podmíněně?
React přiřazuje stav podle pořadí volání.
2. Co patří do efektu?
Externí synchronizace.
3. Zaručuje useMemo správnost?
Ne.