応答のライフサイクル
リアクションライフサイクルチャート
応答ライフサイクル(LifeCycle)は
リアクションのライフサイクルとは、構成部品の作成、更新、および除去プロセスです.
手順1-作成(マウント)
作成フェーズは、コンストラクション関数によって構成部品が初期化され、レンダリングされた後に最初にDOMで描画されるフェーズです.
作成手順の流れを整理します.
概要:コンストラクション関数->getDerivedStateFromProps->プレゼンテーション->コンポーネントDidMountの順に
// getDerivedStateFromProps
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.color !== prevState.color) {
return { color: nextProps.color };
}
return null;
}
->getDerivedStateFromPropsがオブジェクトを返すと、そのオブジェクトの内容は構成部品の状態に設定されます.nullを返すと何も起こりません.ステップ2-変更(Update)
構成部品に渡されるpropsまたはstateが変化すると、変更されます.変化が発生すると、反応器は素子を再描画します.
変更段階の流れを整理する.
propsが更新されるか、setState()でステータスが更新されます.
1. getDerivedStateFromProps
2.shouldComponentUpdate(仮想DOMで構成部品を描画するかどうかを決定する方法)
3.既存の構成部品()を再レンダリングします.
4.getSnapshotBeforUpdate(コンポーネントDidUpdate関数から取得し、変更前に返された状態を使用して特定の値を返すことができます)
3.DOMの変更部分を更新します.
4.コンポーネントDidUpdate()メソッドを実行します.
要旨:新しいPropsまたはStateの変更->getDeriveStateFromProps->プレゼンテーション->getSnapshotBeforUpdate->ComponetDidUpdate順に実行
// shouldComponentUpdate
shouldComponentUpdate(nextProps, nextState) {
// 숫자의 마지막 자리가 4면 리렌더링하지 않습니다
return nextState.number % 10 !== 4;
}
->最適化時に使用されるメソッド、応答は変更を仮想DOMに集約しますが、実際のDOMでは変更のみが変更され、shouldComponentUpdateでは仮想DOMの新しいレンダリングを回避できます.手順3-削除(Unmounting)
DOMに表示されている構成部品を削除すると、削除ステップは、構成部品が消える前にcomponentWillUnmount()を実行します.(DOMに直接登録されているイベントを削除し、settimeoutを使用している場合はcleartimeoutを使用できます.)
サマリ
反応素子には、生成→更新→削除のライフサイクルがあります.作成フェーズでは、コンストラクション関数がstateを初期化し、レンダリング方法を実行して要素をDOMにマウントします.インストールが完了すると、ComponentDidMountというライフサイクルメソッドが実行されます.更新フェーズでは、propsが再転送されるか、ステータス更新時に、再レンダリングが行われると同時にDOMで変化した部分が更新される.更新が完了すると、コンポーネントDidUpdateライフサイクルメソッドが実行されます.最後に、削除ステップでDOMに表示される構成部品がアンインストールされると、コンポーネントDidMount()で作成した操作などをクリーンアップするためのコンポーネントWillUnmontライフサイクルメソッドが、アンインストール前に実行されます.
reference
https://react.vlpt.us/basic/25-lifecycle.html
Reference
この問題について(応答のライフサイクル), 我々は、より多くの情報をここで見つけました https://velog.io/@daeseongkim/React의-생명주기LifeCycleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol