Skip to main content

Flutter Book C1

Stateful Widget 生命期:

  • Widget: constructor --> 调用 createState()
  • State: constructor --> mounted --> initState --> dirty state --> build --> clean state --> dispose

其中 state 有如下两条生命期支线可以流转到 dirty state:

  • initState --> didChangeDependencies --> dirty state
  • clean state --> setStatedidUpdateWidget --> dirty state

比如在界面中有一个名字是 Widget 的 Stateful Widget:

  1. 当加载这个界面时, Flutter 创建 Widget, Widget 会创建自己关联的 State 对象
  2. State mounted 后, Flutter 调用 initState
  3. init 完成后, Flutter 会 build 这个 Widget, 然后 state 到达 clean state, 这个过程会对 Widget 进行 render.
  4. 至此, Widget 就稳定下来了, 接下来就是等待如下事件并进行对应的状态转变:
    • 当用户导航到其他界面后, state 可以被 dispose.
    • Widget 的某些配置被外界改变, 会触发 didUpdateWidget
    • 自己主动调用 setState

Flutter rendering: 原理

在任何时候, APP 都是由一个巨大的逻辑上的 Widget 树构成, Flutter 通过这个"配置树"的改变对界面进行重新渲染.

待续...

Dart 概述

  1. main 函数作为入口
  2. Dart 是面向对象的, 支持单继承
  3. Dart 中任何东西都是对象, 数字也是对象, 而非原子类型