レスポンス入力方式-構成部品のライフサイクル
すべての反応器にはライフサイクルが存在する.
ライフサイクルはクラス構成部品にのみ適用されます.
9種類のライフサイクルメソッドがあります.
*接頭辞メソッド Will接頭辞付き方法:任意の操作の前に実行される方法 Did接頭辞を有する方法:ある操作の後に実行される方法 .
ライフサイクルは、次の3つに分類されます. をマウント更新 アンインストール これからはカテゴリを1つずつ調べていきましょう
DOMを作成し、Webブラウザにマウントと表示します.
インストールを呼び出す方法は次のとおりです.
1.構成部品の作成
2.constructor:構成部品の作成時に呼び出されるクラスジェネレータメソッド
3.getDervedStateProps:propsの値をstateに入れるときに使う方法
4.レンダリング:UIのレンダリング方法
5.コンポーネントDidMount:コンポーネントをWebブラウザに表示して呼び出す方法
次の4つの場合にのみ、構成部品を更新します.
1.アイテム変更時
2.状態変化時
3.親構成部品を再レンダリングする場合
4. this.forceUpdateを使用して強制レンダリングをトリガーする場合
更新時に呼び出す方法は次のとおりです.
1.更新の原因:props変更、ステータス変更、親構成部品ツリーレンダリング
2. getDerivedStateFromProps
3. shouldComponentUpdate
4. render
5. getSnapshotBeforeUpdate
6. componentDidUpdate
取り付けとは反対の構成部品をDOMから削除します.
アンインストール時に呼び出す方法は次のとおりです.
1.アンインストール
2. componentWillUnmount
ライフサイクルの方法を見てみましょう.
これは素子の中で最も重要な方法である.
*render関数の特性メソッドでthis.props, this.アクセスstate 反応元素 を返す.
*render関数の注意事項イベントが設定されていない場所でsetState を無効にするブラウザにアクセスできないDOM
初期状態を構成部品の作成者メソッドに設定できます.
反応v 16.3以降に作成される新しいメソッド.
propsから受信した値をステータスに同期するために使用します.更新用にマウントされます.
構成部品を作成し、最初のレンダリングが完了したら実行します.
settimeOutやsetIntervalなどの非同期タスク/ライブラリまたはフレームワーク関数を呼び出すために使用します.
propsは、stateを変更したときに再レンダリングを開始するかどうかを指定します.
*shouldComponentUpdate機能
1.true、false値を返す必要があります
2.構成部品を作成するとき、他の設定がない場合はtrueを返します.
3.props、stateはthisです.props, this.ステータス別アクセス
4.nextProps、nextStateを使用して新しいprops、stateにアクセス
反応v 16.3以降に作成する方法.
ブラウザがrender生成の成果物を実際に反映する前に呼び出す.主に更新前に参照値を使用します.
レンダリングが完了したら実行します.prevProps、prevStateを使用して、構成部品が以前に所有していたデータにアクセスできます.
DOMから構成部品を削除するときに実行します.
イベント、タイマー、または直接作成したDOMをComponentDidMountに登録している場合は、ここで削除操作を行う必要があります.
構成部品のレンダリング中にエラーが発生した場合にUIを表示する方法.
But,この方法では素子自体で発生したエラーをキャプチャすることはできないが,これは自身のthisである.props.サブアセンブリに渡されたエラーのみをキャプチャできます.
参考資料
はんのうぎじゅつ
ライフサイクルはクラス構成部品にのみ適用されます.
ライフサイクルメソッド
9種類のライフサイクルメソッドがあります.
*接頭辞メソッド
ライフサイクルは、次の3つに分類されます.
マウント
DOMを作成し、Webブラウザにマウントと表示します.
インストールを呼び出す方法は次のとおりです.
1.構成部品の作成
2.constructor:構成部品の作成時に呼び出されるクラスジェネレータメソッド
3.getDervedStateProps:propsの値をstateに入れるときに使う方法
4.レンダリング:UIのレンダリング方法
5.コンポーネントDidMount:コンポーネントをWebブラウザに表示して呼び出す方法
更新
次の4つの場合にのみ、構成部品を更新します.
1.アイテム変更時
2.状態変化時
3.親構成部品を再レンダリングする場合
4. this.forceUpdateを使用して強制レンダリングをトリガーする場合
更新時に呼び出す方法は次のとおりです.
1.更新の原因:props変更、ステータス変更、親構成部品ツリーレンダリング
2. getDerivedStateFromProps
3. shouldComponentUpdate
4. render
5. getSnapshotBeforeUpdate
6. componentDidUpdate
インストールされていません
取り付けとは反対の構成部品をDOMから削除します.
アンインストール時に呼び出す方法は次のとおりです.
1.アンインストール
2. componentWillUnmount
ライフサイクルメソッドの理解
ライフサイクルの方法を見てみましょう.
1.render()メソッド
これは素子の中で最も重要な方法である.
*render関数の特性
*render関数の注意事項
2.コンストラクション関数メソッド
初期状態を構成部品の作成者メソッドに設定できます.
constructor(props){
...
}
3.getDerivedStateFromPropsメソッド
反応v 16.3以降に作成される新しいメソッド.
propsから受信した値をステータスに同期するために使用します.更新用にマウントされます.
static getDerivedStateFromProps(nextProps, prevState){
if(nextProps.value !== prevState.value){
return { value: nextProps.value };
}
}
4.コンポーネントDidMountメソッド
構成部品を作成し、最初のレンダリングが完了したら実行します.
settimeOutやsetIntervalなどの非同期タスク/ライブラリまたはフレームワーク関数を呼び出すために使用します.
componentDidMount() { ... }
5.shouldComponentUpdateメソッド
propsは、stateを変更したときに再レンダリングを開始するかどうかを指定します.
*shouldComponentUpdate機能
1.true、false値を返す必要があります
2.構成部品を作成するとき、他の設定がない場合はtrueを返します.
3.props、stateはthisです.props, this.ステータス別アクセス
4.nextProps、nextStateを使用して新しいprops、stateにアクセス
shouldComponentUpdate(nextProps, nestState) { ... }
6.getSnapshotBeforeUpdateメソッド
反応v 16.3以降に作成する方法.
ブラウザがrender生成の成果物を実際に反映する前に呼び出す.主に更新前に参照値を使用します.
getSnapshotBeforeUpdate(prevProps, prevState){
if(prevState.array !== this.state.array){
const { scrollTop, scrollHeight } = this.list
return { scrollTop, scrollHeight };
}
}
7.コンポーネントDidUpdateメソッド
レンダリングが完了したら実行します.prevProps、prevStateを使用して、構成部品が以前に所有していたデータにアクセスできます.
componentDidUpdate(prevPrps, prevState, snapshot) { ... }
8.コンポーネントWillUnmountメソッド
DOMから構成部品を削除するときに実行します.
イベント、タイマー、または直接作成したDOMをComponentDidMountに登録している場合は、ここで削除操作を行う必要があります.
9.コンポーネントDidCatch方法
構成部品のレンダリング中にエラーが発生した場合にUIを表示する方法.
componentDidCatch(error, info){
this.setState({
error: true
});
console.log({error, info});
}
ここでerrorはどのエラーを表示し、infoはコード内のエラーを表示します.But,この方法では素子自体で発生したエラーをキャプチャすることはできないが,これは自身のthisである.props.サブアセンブリに渡されたエラーのみをキャプチャできます.
参考資料
はんのうぎじゅつ
Reference
この問題について(レスポンス入力方式-構成部品のライフサイクル), 我々は、より多くの情報をここで見つけました https://velog.io/@rkgus3575/리액트-입문기-컴포넌트의-라이프-사이클テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol