flutter生命周期——更新于 2026/4/13

0 阅读1分钟

生命周期层级

image.png

页面生命周期widget

  • 图解流程

image.png

  • 细分流程

    • 构造函数

    • createState

      创建state对象

    • initState⭐

      时机:插入widget树时调用

      常见用途:初始化数据/初始化controller/发起请求

    • didChangeDependencies⭐

      时机:initState后立即调用一次

      常见用途:Provider/Theme/MediaQuery

    • build⭐

      时机:初始化/setState/didUpdateWidget后都会执行

      常见用途:ref.watch

    • didUpdateWidget⭐

      时机:父组件传入新的参数时

      常见用途:重新赋值后执行某些方法并更新build

    • setState⭐

      时机:setState((){})

      常见用途:标记dirty->更新某个数据并重新执行build

    • deactivate

      从树上移除,但可能还会重新插入,固化存在内存中

    • dispose⭐

      时机:永久销毁

      必做:释放资源/关闭流/销毁controller

标记:build方法的参数BuilderContext即为三棵树中的Element的向外暴露的上下文,而当执行Navigator.push(context,route)context.size时,就是利用Element对应的方法去进行检索router/获取