Flutter体验 Day 7-State生命周期

State生命周期

State 的生命周期是指 StatefuleWidget 中的 State 从创建至消灭中间的过程,在这过程中存在多个不同阶段的 Hooks,我们可以在这些接口上实作想要的行为。

State Hooks

  • createState()

StatefulWidget原始码追踪 StatefulWidget 实体化的过程:

  1. StatefulWidget 会先透过 createElement 产生 StatefulElement
  2. StatefulElement 调用 StatefulWidgetcreateState 方法产生对应的 State 物件。
  • initState()

State 创建时会去呼叫 initState 方法。

=> 通常会在这个阶段进行State资料初始化的动作。

  • didChangeDependencies()

StatefulWidget 有使用来自InheritedWidget的资料时会触发。

=> InheritedWidget 可以让组件存取来自 Widget Tree 上层定义的资料,因此当上层资料有异动时会触发这个 hook。

  • build()

=> 同 StatelessWidget build 方法,用来定义UI的配置设定。

  • reassemble()

开发中使用 debug 模式时,在触发 Hot Reload 时会呼叫该函数

=> 可以用来 debug 状态是否正常。

  • didUpdateWidget()

当呼叫 setState 後,StatefulWidget 内部会检查是否发生异动并触发 didUpdateWidget

  • deactivate()

当组件节点即将被 Element Tree 移除时会被呼叫。

  • dispose()

当组件节点被 Element Tree 移除後,若後续没有确认不会在使用则触发此方法并释放占用的资源。

生命周期 Hooks

参考《Flutter实战》图3.2 重新绘制成彩色版

state_lifecycle

小结

我们可以从昨日的 练习成果 理解整个生命周期的过程。


<<:  Day3大哥我错了我选择vue2

>>:  网络框架:如何制定protocol

[DAY18]Helm棒~~

Helm 常用command 以下指令应该是常常会操作到 helm create : 建立chart...

2. 解释 Closure ( Scope chain )

定义 MDN的定义: A closure is the combination of a funct...

Day 26. 我要准时下班- Figma Plugin (上)

Figma 的功能已经相当强大,但多少还是会缺乏一些功能,当我们有需要的时候,便可到社群里用关键字查...

身体惯性-螃蟹改不了横行

早起运动Day8 - 身体习惯​ ​ 不假思索的起床,做第一件事情以後就会带到第二件事情。​ 就像看...