Flutter State 的生命周期

Flutter 中 State 的生命周期是理解 StatefulWidget 工作原理的关键。以下是 Flutter 中 State 对象的完整生命周期:

  1. createState()

    • 当框架被要求构建 StatefulWidget 时首先调用
    • 必须被覆盖并返回 State 类的实例
  2. initState()

    • 在 State 对象插入视图树时调用
    • 仅被调用一次
    • 这里适合进行一次性初始化,如控制器初始化、监听器注册等
    • 必须调用 super.initState()
  3. didChangeDependencies()

    • 在 initState() 之后立即调用
    • 当 State 对象的依赖项更改时会再次调用
    • 例如,当使用 InheritedWidget (如 Theme 或 MediaQuery) 时,此方法会被调用
  4. build()

    • 必须实现的方法
    • 描述如何构建组件的 UI
    • 可能被频繁调用,所以应该是轻量级的
    • 每当 widget 需要重新渲染时会调用
  5. didUpdateWidget(covariant oldWidget)

    • 当父 widget 重建并提供新 widget 时调用
    • widget 的配置发生变化时使用
    • 旧的 widget 作为参数传入
  6. setState()

    • 通知框架 State 对象的内部状态已更改
    • 触发 build() 方法重新调用
    • 不是生命周期方法,但用于管理状态变化
  7. deactivate()

    • 当 State 从视图树中移除时调用
    • 如果稍后将其重新插入,可能还会再次激活
    • 在从一个位置移动到另一个位置的情况下使用
  8. dispose()

    • 当 State 对象永久从视图树中移除时调用
    • 用于清理资源,如取消订阅、销毁控制器等
    • 必须调用 super.dispose()

这些方法构成了 Flutter 中 State 的完整生命周期。正确理解和使用这些生命周期方法对于创建高效、无内存泄漏的 Flutter 应用非常重要。

本文链接:

https://www.devorz.com/index.php/archives/flutter-state-lifecycle.html
1 + 8 =
快来做第一个评论的人吧~