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

相关推荐
柿蒂3 小时前
聊聊SliverPersistentHeader优先消费滑动的设计
android·flutter
fishofeyes8 小时前
Riverpod使用
flutter
消失的旧时光-194320 小时前
iFlutter --> Flutter 开发者 的 IntelliJ IDEA / Android Studio 插件
flutter·android studio·intellij-idea
马拉萨的春天1 天前
block的样式有哪些?如果copy的话分别会有啥样式
flutter·性能优化·ios的block
Rattenking1 天前
【CSS】---- 图形函数详解
笔记·学习·flutter
程序员老刘1 天前
别再抱怨Flutter方案太多了,这个就叫生态!
flutter·客户端
黄毛火烧雪下1 天前
(一)Flutter 插件项目demo预览图
flutter
站在远方望童年1 天前
WSL2 中的 Flutter 开发环境配置
flutter
w_y_fan1 天前
flutter_native_splash: ^2.4.7
android·前端·flutter
QuantumLeap丶1 天前
《Flutter全栈开发实战指南:从零到高级》- 06 -常用布局组件
flutter·dart