1. 初始化阶段

  • 构造函数:Widget被创建时调用,用于初始化实例变量。
  • createState():创建State对象,并在此方法中初始化State的状态。

2. 挂载阶段

  • initState():在State对象被插入树中时调用,可以在此方法中执行一些初始化操作。
  • didChangeDependencies():在State对象依赖的对象发生变化时调用,例如Theme或MediaQuery。

3. 更新阶段

  • didUpdateWidget():当父Widget重建时调用,可以比较新旧Props是否相同来执行一些操作。
  • setState():当调用setState方法时触发Widget的重建。

4. 卸载阶段

  • deactivate():当State对象从树中被移除时调用。
  • dispose():在State对象被永久从树中移除时调用,可以在此方法中执行一些资源释放操作。

5. 错误处理阶段

  • didCatchError():当子Widget出现错误并抛出异常时调用,在此方法中可以处理错误并返回一个替代性的Widget。