美文网首页
flutter 声明周期相关 整体梳理

flutter 声明周期相关 整体梳理

作者: 菜鸟何时起飞 | 来源:发表于2022-03-12 16:29 被阅读0次

一个element 的创建从 inflateWidget 开始

1 调用 inflateWidget 
  1.1第一次创建 会走element 的mount     newChild.mount(this, newSlot);
  1.2 在 mount 方法中 除了公共逻辑,不同的子类有不同的处理逻辑,这里只说ComponentElement,因为StatefulElement 是它的子类。
  1.3 ComponentElement.mount() 调用了_firstBuild() ,在_firstBuild 中调用了rebuild()。
  1.4 StateFulElement 重写了_firstBuild(), 分别调用了state.initState() state. didChangeDependencies();
   1.5 走rebuild() ->performRebuild(),针对不同的子类performRebuild()处理逻辑不一样,这里只看StatefulElement->ComponentElement().
       在ComponentElement 的performRebuild 中会调用 build() ,不同的子类实现不一致,针对StatefulElement 就是调用 state.build() ,对于StatelessElement 就是调用 Widget.build().

至此 对于 StateFulWidget 的state 的声明周期调用如下 initState ->didChangeDependencies->build()

相关文章

网友评论

      本文标题:flutter 声明周期相关 整体梳理

      本文链接:https://www.haomeiwen.com/subject/mezkdrtx.html