第八十二回:Widget的生命周期

文章介绍了Flutter中StatefulWidget的生命周期,包括initState()用于初始化,build()用于构建Widget,以及dispose()用于释放资源。通过示例代码展示了这三个关键生命周期方法的使用,并提示读者可以结合Android或iOS的生命周期知识进行对比理解。
摘要由CSDN通过智能技术生成


我们在上一章回中介绍了Flutter中如何使用三方包相关的内容,本章回中将介绍 Widget的生命周期.闲话休提,让我们一起Talk Flutter吧。

概念介绍

本章回中介绍的生命周期是指Widget从创建到结果的整个过程,这里提到的Widget是一个泛称,更加准确的说是StatefulWidget,因为StatelessWidget没有具体的State

在程序开发过程中需要明白Widget的生命周期,这样才能生命周期中不同的阶段做不同的事情,常见是在创建Widget时初始化某些数据,在销毁Widget时释放相关的资源。

使用方法

生命周期是一个抽象的概念,不容易操作,不过不用担心,Flutter在生命周期中不同的阶段提供了不同的回调方法,我们称其为生命周期回调方法。我们只需要使用生命周期回调方法就可以去完全生命中相关的操作。接下来我们介绍相关的生命周期方法:

  • initState()方法:主要用来初始化Widget相关的内容;
  • build()方法:主要用来创建Widget,它不可以创建子Widget;
  • dispose()方法:主要用来释放Widget相关的资源;

我们在这里只介绍了三个重要的生命周期方法,其它的生命周期方法先不介绍,后续遇到后再做详细介绍。如果看官们有Android或者IOS的开发经验,那么可以使用这两个平台中生命周期的概念来对比,以及这两个平台中相关的的生命周期回调方法来做对比,比如onCreate,onResume,willApper,DidLoad等生命周期方法。

示例代码


class ExLoadingPage extends StatefulWidget {
  const ExLoadingPage({Key? key}) : super(key: key);

  
  State<ExLoadingPage> createState() => _ExLoadingPageState();
}

class _ExLoadingPageState extends State<ExLoadingPage> {
  
  void initState() {
    // TODO: implement initState
    super.initState();
    print("Widget Circle: initState");
  }

  
  Widget build(BuildContext context) {
    print("Widget Circle: build");

    return Container(
      child: Image.asset("images/ex.png"),
    );
  }

  
  void dispose() {
    print("Widget Circle: dispose");
    super.dispose();
  }
}

编译并且运行上面的程序可以得到以下运行结果。注意:在运行过程中需要使用路由来切换页面,不然无法走到dispose这个生命周期方法中:

I/flutter ( 9836): Widget Circle: initState
I/flutter ( 9836): Widget Circle: build
I/flutter ( 9836): Widget Circle: dispose

看官们,关于"Widget生命周期"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值