Flutter中Widget的生命周期

Widget生命周期: createState-initState-didChangeDependency-build-deactive-dispose
可通过WidgetsBinding类对widget生命周期的回调进行监控。


createState:StatefulWidget 中用于创建 State;

initState:State 的初始化操作,如变量的初始化等;

didChangeDependencies:initState 调用之后调用,或者使用了 InheritedWidget 组件会被调用,其中 InheritedWidget 可用于Flutter 状态管理;

build:用于 Widget 的构建;

deactivate:包含此 State 对象的 Widget 被移除之后调用,若此 Widget 被移除之后未被添加到其他 Widget 树结构中,则会继续调用 dispose 方法;

dispose:该方法调用后释放 Widget 所占资源;

reassemble:用于开发阶段,热重载的时候会被调用,之后会重新构建;

didUpdateWidget:父 Widget 构建的时候子 Widget 的 didUpdateWidget 方法会被调用。
在flutter中, 万物皆Widget。 Widget不能更新, 只能重建。StatelessWidget创建后不能改变,StatefulWidget可以改变,但其实也是通过重建的方式进行改变,因此代价较大,要避免滥用,防止整个UI全部重建。

会引起Widget重建的操作:

(1)主动调用setState

(2)didChangeDependency:语言、系统主题变化

(3)父widget重绘调用didUpdateWidget

相关推荐
君赏5 天前
棉宇宙 Flutter 热更新是如何落地的
flutter
恋猫de小郭5 天前
AndroidX 新增 Security State ,支持可编程的系统安全状态查询
android·前端·flutter
zihan5185 天前
自己做软件日记9/21 得到了一个良好的文件结构框架
后端·flutter·前端框架·android studio
ZFJ_张福杰6 天前
【Flutter】Flutter 中有哪些耗时操作?从 UI 卡顿到 Isolate 性能优化
flutter·性能优化·卡顿·isolate
sakiko_6 天前
Flutter:Dart学习笔记1:基础UI组件等
flutter
9765033356 天前
iOS 上架 4.3a 被拒【uniapp专讲】
flutter·ios·objective-c·uniapp·swift
传奇开心果编程6 天前
【Flutter入门练中学】第2课:布局系统
学习·flutter·ui
君赏7 天前
FlutterPatch:把 Shorebird 热更新的控制面搬回自己服务器
flutter
用户2181697049307 天前
Flutter tootip 轻量级提示
flutter
用户2181697049307 天前
Flutter 拖拽 Draggable DragTarget
flutter