Components & State


Components & State


反応の主な機能は素子と状態の相互作用である.これらの主な構成は反応庫から来ている.ステータス管理についてお話ししましょう.
ステータスを更新すると、構成部品自体が再実行され、すべてのステータスがリセットされます.ただし、useStateを使用すると、以前に使用した状態が依然として存在することがわかります.
代表として、usStateがどのように動作しているかを見てみましょう.
素子が再動作すると,反応器はどのDOMでstateを使用するか知っている.(Closer)ステータス値を初期値に割り当て、初期値はuserState(init)に対応します.その後、構成部品を再計算してusStateコードを実行すると、usStateは値を再初期化しません.反応器は、コンポーネントの状態(モジュール)が存在することを確認し、必要に応じて状態を更新する.DOMコンポーネントから完全に除去されない限り、再評価時に初期化されません.DOMコンポーネントから完全に除去されて再レンダリングされると、除去された構成部品の状態変数が再初期化されます.
反応器内の他の状態変更関数も同様である.

State Updates & Scheduling



反応状態管理フックを使用して状態管理を行う場合は、シーンを見てみましょう.
我々のコードでは,初期値はuserStateから状態変数に入る.その後、setStateコードが私たちのコードで実行されると、変更された値はすぐに反映されません.
反応器は、対応する変更が発生した時間のみを保持する.なぜなら、setStateより優先度が高く、setStateに複数の変更が発生した場合、これらの変更を同時に反映する必要があるからです.そのまま変更を予定して、状態変更したら.コンポーネントは再実行され、その値は私たちのコードに反映されます.
	setState(prev => prev!);
ステータス変更コードを以前の値を参照して記述すると、ステータス変更は順番に行われます.最後に更新された値は、以前の値を参照し続けるため、最新の値を参照します.以前の値を参照する必要があるが、以前の値を参照しないでコードを記述したくない場合は、setStateが最新の値を取得できない可能性があります.
	const [state, setState] = useState(0);
	setState( state + 1 );
	setState( state + 1 );
	// state === 2 : false 
	// state === 1 : true
	const [state, setState] = useState(0);
	setState(prev => prev + 1);
	setState(prev => prev + 1);
	// state === 2 : true
ステータス変更がsetStateに変更される予定ですが、まだ反映されていない場合は、ロー関数を使用して以前のステータス値を反映し、常に最新のステータスを反映する必要があります.

バッチ・ステータス


さらに、setStateが変更されるとすぐに複数行のsetStateが呼び出されると、反応器はプロセスのセットを一度にスケジュールします.個別に更新するのではなく、複数のステータスを一度に更新します.