StatefulWidget的生命周期

2020-11-11  本文已影响0人  刘铁崧

widget的生命周期

build构造函数调用 -> 调用build方法


statefulWidget的生命周期

class ESTest extends StatefulWidget {
  ESTest(){
    print("1.widget中调用构造方法");
  }

  @override
  _ESTestState createState(){
    print("2.widget中调用createState方法");
    return _ESTestState();
  }
}

class _ESTestState extends State<ESTest> {
  _ESTestState(){
    print("3.state中调用构造方法");
  }
  @override
  void initState() {
    // TODO: implement initState
    print("4.state中调用init方法");
    super.initState();
  }
  @override
  void didChangeDependencies() {
    print("state中调用didChangeDependencies");
    // TODO: implement didChangeDependencies
    super.didChangeDependencies();
  }
  @override
  void didUpdateWidget(ESTest oldWidget) {
    // TODO: implement didUpdateWidget
    print("state中调用:didUpdateWidget");
    super.didUpdateWidget(oldWidget);
  }
  @override
  Widget build(BuildContext context) {
    print("5.state中调用build方法");
    return Container();
  }
  @override
  void dispose() {
    // TODO: implement dispose
    print("6.state中调用销毁dispose方法");
    super.dispose();
  }
}

打印声明周期调用顺序:

Restarted application in 456ms.
flutter: 1.widget中调用构造方法
flutter: 2.widget中调用createState方法
flutter: 3.state中调用构造方法
flutter: 4.state中调用init方法
flutter: state中调用didChangeDependencies
flutter: 5.state中调用build方法
flutter: 1.widget中调用构造方法
flutter: state中调用:didUpdateWidget
flutter: 5.state中调用build方法

注意:

上一篇下一篇

猜你喜欢

热点阅读