likes
comments
collection
share

Flutter学习-27-Flutter的生命周期

作者站长头像
站长
· 阅读数 51

1. Widget生命周期的基本概念

  • 生命周期 生命周期是从创建到销毁的过程,实际使用中就是各种回调方法(函数调用)。 目的就是为了让我们知道封装好的Widget处于什么样的状态
  • 作用 我们通过监听Widget的生命周期,做出对应的操作,比如initState初始化数据:创建数据或者发送网络请求。dispose的时候内存管理,销毁数据,监听者或者Timer等。

2. Widget的生命周期

2.1 StatelessWidget

对于StatelessWidget来说没有状态,因此只有

  • 初始化init
  • build创建(每次页面绘制会调用build)

2.2 StatefulWidget

  • init初始化

Flutter学习-27-Flutter的生命周期

  • createState

createState是创建Widget的state的时候创建的,这个方法只调用一次

Flutter学习-27-Flutter的生命周期

  • state的init

我们创建State的时候会执行初始化方法,只会执行一次

Flutter学习-27-Flutter的生命周期

  • initState()

initState创建state的时候调用,只会执行一次,通常我们会在这里做些数据方面的处理或者一些初始化操作,此时view还没有加载,类似我们的viewDidload

Flutter学习-27-Flutter的生命周期

  • didChangeDependencies

didChangeDependenciesinitState后立即调用,之后在StatefulWidget依赖的InheritedWidget发生变化后,didChangeDependencies才会调用,因此didChangeDependencies可以多次被调用。后面我们会介绍InheritedWidget数据共享

Flutter学习-27-Flutter的生命周期

  • build

build是绘制页面的时候调用,初始化的时候在didChangeDependencies后调用,我们主动调用setState()的时候会重新调用build方法进行绘制页面渲染,通常我们在build主要是创建widget,调用其他方法会影响渲染效率

Flutter学习-27-Flutter的生命周期

  • addPostFrameCallback addPostFrameCallback是在渲染结束都进行调用,一般是在initState中调用,只会调用一次。

Flutter学习-27-Flutter的生命周期

  • didUpdateWidget 组件更新的时候会进行调用,通常widget初始化后会调用一次

Flutter学习-27-Flutter的生命周期

  • deactivate 移除组件的时候调用

Flutter学习-27-Flutter的生命周期

  • disposeWidget销毁的时候,调用State dispose,我们一般在dispose做一些取消监听,销毁定时器,动画等操作。和init State相对使用

Flutter学习-27-Flutter的生命周期

转载自:https://juejin.cn/post/7034441780040990756
评论
请登录