devShark · Rychlé vysvětlení

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.

Procvičit v kvízu

Další témata