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

相关推荐
子非鱼94278 小时前
06-Flutter 鸿蒙实战 06:上传后处理流程,照片识别、故事生成和状态刷新
学习·flutter·华为·harmonyos
sTone8737511 小时前
写时复制COW的第一性理解
android·c++·flutter
nicepainkiller11 小时前
codex 逆向 flutter
flutter·flutter 逆向
帅次12 小时前
Android 高级工程师面试:Flutter 路由导航 近1年高频追问 18 题
android·flutter·面试
浮江雾12 小时前
Flutter第七节-----快捷键创建组件与flutter中的点击事件
flutter
想你依然心痛21 小时前
【共创季稿事节】HarmonyOS 7.0 应用框架(ArkUI-X)跨平台能力深度探索
flutter·react native·arkui-x·跨平台渲染·harmonyos 7.0·arkrender·组件兼容性
SoaringHeart1 天前
Flutter最佳实践:键盘辅助视图输入框天添加图片附件
前端·flutter
心中有国也有家1 天前
AtomGit Flutter 鸿蒙客户端:Canvas 绘制进阶-路径、渐变与混合模式
android·javascript·flutter·华为·harmonyos
程序员老刘1 天前
Android 17的10个AI功能,国内用户真正能用的有几个?
android·flutter·ai编程
浮洋1 天前
HabitGo:一个 Flutter 习惯追踪 App 的深度技术剖析
flutter