useState yana ba da ɓangare na aiki ɓangare na halaye na gida, da jinkiri. Yana dawo da nau'i: kimar yanzu da aiki na saita. Kiran saita yana shirya sake juyawa tare da sabon kimar.
[count, setCount] = ();
(count + );
( c + );
useState yana ba da ɓangare na aiki ɓangare na halaye na gida, da jinkiri. Yana dawo da nau'i: kimar yanzu da aiki na saita. Kiran saita yana shirya sake juyawa tare da sabon kimar.
[count, setCount] = ();
(count + );
( c + );
1. Sagini ba daidai ba ne / ana damka. count ba ya canza akan layin bayan setCount; yana da sabon kimar a jiya na gida sake juyawa. Don haka wannan yana dagowa sau ɗaya ne:
setCount(count + 1);
setCount(count + 1); // both read the SAME stale `count` → +1 total
Sa functional updater lokacin da sabon kimar ya dogara kan na gida, saboda React yana damje sabon kimar:
setCount(c => c + 1);
setCount(c => c + 1); // +2 total — each gets the up-to-date value
2. Ana amfani da kimar farawa ne kawai a farkon sake juyawa. Don tsada mai tsada, damje aiki don ya guddu sau ɗaya (lazy init):
const [data] = useState(() => expensiveInit()); // runs once, not every render
Halaye shi ne abin da ya sanya ɓangare da ma'amala — React yana aike da aiki kuma yana sake juyawa UI duk lokacin da halaye ya canja.
Dauki halaye a matsayin immutable: saita sabon jirgin/jili a maimakon bada, misali setItems([...items, x]), in ba haka ba React bazai gano canja ba.