Flutter中state的生命周期

在flutter中,一个statefulWidget会对应一个state类,state表示对应的statefulWidget要维护的状态。

1、相关回调函数

  • initSate()
    当widget第一次插入widget树是被调用,即初始化。初始化时相应的widget树还没有完全确定,所以不能在该毁掉中使用BuildContext.inheritFromWidgetOfExactype来获取widget树上最近的父级InheritFromWidget。
  • didChangeDependencies()
    当state所依赖的对象发生变化时调用。
  • build()
    用于构建widget子树,在initState(),didUpdateWidget(),setState(),didChangeDependencies(),之后被调用。
  • deactivate()
    当state从widget树中移除时调用此方法。
  • reassemble()
    用于开发调试,在热重载是被调用,在release模式下不会被调用。
  • didUpdateWidget()
    当widget重新构建时,flutter framework会调用widget.canUpdatte检查widget树中同一位置的结点需不需要更新,如果返回true则调用此方法更新结点。
  • dispose()
    当state对象被从树中永久移除时调用。

2、调用顺序

  • 第一次调用state
    initState -> didChangeDependencies -> build
  • 热重载
    reassemble -> didUpdateWidget-> build
  • 移除
    deactive -> dispose

3、流程图:

流程图.png

你可能感兴趣的:(Flutter中state的生命周期)