1. 程式人生 > 其它 >Flutter 生命週期函式

Flutter 生命週期函式

生命週期就是在某個特定的時刻會自動觸發的函式。

flutter 生命週期的六個鉤子函式大致分為四個階段:

元件的初始化 → 建立 → 更新 → 解除安裝

只有我們瞭解了生命週期的執行順序,才能清楚的知道我們在那些時刻應該做什麼。

程式碼示例:

class HYHomeContent extends StatefulWidget {
  // 1、執行State類的構造方法
  HYHomeContent() {
    print("1.呼叫HYHomeContent的constructor方法");
  }

  @override
  _HYHomeContentState createState() {
    print(
"2.呼叫HYHomeContent的createState方法"); return _HYHomeContentState(); } } class _HYHomeContentState extends State<HYHomeContent> { int _counter = 0; _HYHomeContentState() { print("3.呼叫_HYHomeContentState的constructor方法"); } @override void initState() { // 2、執行initState,通常會在這個方法中執行一些資料初始化的操作,或者也可能會發送網路請求;
// 注意:這個方法是重寫父類的方法,必須呼叫super,因為父類中會進行一些其他操作; // 並且如果你閱讀原始碼,你會發現這裡有一個註解(annotation):@mustCallSuper final TextStyle style = TextStyle(); super.initState(); // 呼叫: 這裡是必須呼叫super print("4.呼叫_HYHomeContentState的initState方法"); } @override void didUpdateWidget(HYHomeContent oldWidget) {
super.didUpdateWidget(oldWidget); // 執行didUpdateWidget方法是在當父Widget觸發重建(rebuild)時,系統會呼叫didUpdateWidget方法; print("didUpdateWidget"); } // 這個方法在兩種情況下會呼叫 @override void didChangeDependencies() { super.didChangeDependencies(); // 情況一:呼叫initState會呼叫; // 情況二:從其他物件中依賴一些資料發生改變時,比如InheritedWidget; print("呼叫_HYHomeContentState的didChangeDependencies方法"); } @override Widget build(BuildContext context) { print("5.呼叫_HYHomeContentState的build方法"); return Column( children: <Widget>[ RaisedButton( child: Icon(Icons.add), onPressed: () { // 手動呼叫setState方法,會根據最新的狀態(資料)來重新呼叫build方法,構建對應的Widgets; setState(() { _counter++; }); }, ), Text("數字:$_counter") ], ); } @override void dispose() { // 當前的Widget不再使用時,會呼叫dispose進行銷燬 print("6.呼叫_HYHomeContentState的dispose方法"); super.dispose(); } }

個人部落格:https://codergzh.gitee.io/
日常工作和學習中的記錄和分享
如有不對,歡迎各位大佬指導