useState giver en funktionskomponent et stykke lokalt, reaktivt state. Det returnerer et par: den aktuelle værdi og en setter-funktion. At kalde setter planlægger en gengivelse med den nye værdi.
[count, setCount] = ();
(count + );
( c + );
useState giver en funktionskomponent et stykke lokalt, reaktivt state. Det returnerer et par: den aktuelle værdi og en setter-funktion. At kalde setter planlægger en gengivelse med den nye værdi.
[count, setCount] = ();
(count + );
( c + );
1. Opdateringer er asynkrone / batched. count ændres ikke på linjen efter setCount; den har den nye værdi ved næste gengivelse. Så dette øger kun én gang:
setCount(count + 1);
setCount(count + 1); // both read the SAME stale `count` → +1 total
Brug functional updater, når den næste værdi afhænger af den forrige, fordi React videregiver den seneste værdi:
setCount(c => c + 1);
setCount(c => c + 1); // +2 total — each gets the up-to-date value
2. Den indledende værdi bruges kun ved første gengivelse. For en kostbar standard, send en funktion, så den køres én gang (lazy init):
const [data] = useState(() => expensiveInit()); // runs once, not every render
State er det der gør en komponent interaktiv — React generer funktionen og genviser UI'et når state ændres.
Behandle state som immutable: opret et nyt array/objekt i stedet for at mutere, f.eks. setItems([...items, x]), ellers kan React muligvis ikke registrere ændringen.