[Flutter📱] LifeCycle
LifeCycle?
ライフサイクルは最も基本的な概念の一つです.ライフサイクルが分からなくても、アプリケーションを開発することができます.しかし、開発の過程で様々な問題に直面し、ライフサイクルを知ると対応しやすい.また、演技部分にも大きな影響が出るので、勉強すべきだと思います.
Stateful Widget
オーダー
setState():コンポーネントの状態が変化したときに呼び出され、構築されます.
didUpdateWidget():親部品が更新されたときに呼び出され、構築されます.
constructor
生成者です.親からの変数をメンバー変数に追加します.
createState( )
通常、テンプレートを使用して
initState( )
部品を生成するときに呼び出されるメソッド.
使用方法は次のとおりです.
部品が最初に作成されると、
Called when a dependency of this State object changes. - Flutter
また、前述したように、コンポーネントが依存するデータのオブジェクトが変更されるたびに、コンポーネントが呼び出されます.
UIの実装部分として、このメソッドが呼び出される回数が最も多い.ここに計算が必要なロジックがたくさんあると、アプリケーションのパフォーマンスが著しく低下します.は存在する必要があります. は、再定義(上書き)オブジェクトです. はWidgetを返却する必要があります.
通知フレームの内部ステータスが変更されました.値が変更されたため、UIの値を反映する必要があるため、構築メソッドが呼び出されます.
部品構成が変更されるたびに呼び出されます.正確には、親部品が変更および再構築する必要がある場合に呼び出されます.
このメソッドは、以前のステータス自体を受け入れます.(oldWidget)
プラットのライフサイクルを理解しました.ライフサイクルを知ることで、開発で発生したホットスポットをすぐにつかむことができます.
近いうちにプロジェクト開発を行うかもしれません.その前に、問題なく開発できるように、プラットの知識を最大限に身につけます.
ライフサイクルは最も基本的な概念の一つです.ライフサイクルが分からなくても、アプリケーションを開発することができます.しかし、開発の過程で様々な問題に直面し、ライフサイクルを知ると対応しやすい.また、演技部分にも大きな影響が出るので、勉強すべきだと思います.
Stateful Widget
オーダー
Constructor
|
createState()
|
initState()
|
didChangeDependencies()
|
Build()
ライフサイクルは順番に継続します.追加終了時にdispose()が呼び出されます.setState():コンポーネントの状態が変化したときに呼び出され、構築されます.
didUpdateWidget():親部品が更新されたときに呼び出され、構築されます.
constructor
生成者です.親からの変数をメンバー変数に追加します.
createState( )
statefulWidget
に存在する必要があります.通常、テンプレートを使用して
statefulWidget
を生成できます.class FavoriteWidget extends StatefulWidget {
const FavoriteWidget({Key? key}) : super(key: key);
_FavoriteWidgetState createState() => _FavoriteWidgetState();
}
これ以上修正する必要はありません.initState( )
部品を生成するときに呼び出されるメソッド.
state
を初期化するために使用され、最初の呼び出しのみが呼び出されます.使用方法は次のとおりです.
void initState(){
super.initState(); // 반드시 해줘야한다.
/*초기화 관련...*/
}
didChangeDependencies( )部品が最初に作成されると、
initState()
の直後に呼び出されます.Called when a dependency of this State object changes. - Flutter
また、前述したように、コンポーネントが依存するデータのオブジェクトが変更されるたびに、コンポーネントが呼び出されます.
void didChangeDependencies(){
super.didChangeDependencies();
/*state 변경 시 호출*/
}
build( )UIの実装部分として、このメソッドが呼び出される回数が最も多い.ここに計算が必要なロジックがたくさんあると、アプリケーションのパフォーマンスが著しく低下します.
build()
の方法の特徴は以下の通りである.build(){
return Container(...)
}
Widget
setState( )通知フレームの内部ステータスが変更されました.値が変更されたため、UIの値を反映する必要があるため、構築メソッドが呼び出されます.
setState()
を使用せずに値を変更した場合、build()
メソッドは呼び出されず、UIに反映されません.void setState(() => {
_myState = value;
})
// void callback 함수
didUpdateWidget( )部品構成が変更されるたびに呼び出されます.正確には、親部品が変更および再構築する必要がある場合に呼び出されます.
このメソッドは、以前のステータス自体を受け入れます.(oldWidget)
void didUpdateWidget(covariant T oldWidget) {
super.didUpdateWidget(oldWidget);
if(oldWidget.value != widget.value){
print('update!');
}
}
dispose( )dispose()
メソッドは、使用したものを永久に除去するために使用されます.(scrollController, pageController...) クリアしないとメモリ漏れが発生し、アプリケーションのパフォーマンスが低下するので、そうしたほうがいいです.void dispose() {
// ...
super.dispose()
}
の最後の部分プラットのライフサイクルを理解しました.ライフサイクルを知ることで、開発で発生したホットスポットをすぐにつかむことができます.
近いうちにプロジェクト開発を行うかもしれません.その前に、問題なく開発できるように、プラットの知識を最大限に身につけます.
Reference
この問題について([Flutter📱] LifeCycle), 我々は、より多くの情報をここで見つけました https://velog.io/@gou5met/Flutter-LifeCycleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol