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

相关推荐
sunly_10 小时前
Flutter:视频预览功能
javascript·flutter·音视频
勤劳打代码13 小时前
条分缕析 —— 通过 Demo 深入浅出 Provider 原理
flutter·面试·dart
2501_9159184114 小时前
Flutter 加固方案对比与实战,多工具组合的跨平台安全体系(Flutter App 加固/IPA 成品混淆/Ipa Guard CLI/自动化安全流程)
安全·flutter·ios·小程序·uni-app·自动化·iphone
Bryce李小白14 小时前
Flutter中mixing的原理及应用场景
flutter
_大学牲14 小时前
从 0 到上架:用 Flutter 一天做一款功德木鱼
前端·flutter·apple
嚴寒14 小时前
2025最终!Mac配置Flutter全平台开发环境完整指南(亲测有效)
前端·flutter
Bryce李小白1 天前
Flutter版本管理工具FVM
flutter
程序员老刘1 天前
Dart 3.7格式化工具“乱改代码”?强迫症必看
flutter·代码规范·dart
猫林老师1 天前
Flutter for HarmonyOS开发指南(二):混合开发架构与通信机制
flutter·架构·harmonyos