flutter widget更新10-StateFullWidget生命周期
StatefullWidget生命周期
生命周期的状态转换图如下。
灰色方块StatefulWidget是状态转换时调用的方法。
其余StatefulWidget为州名。有4 种
StatefulWidget状态。
created
initialized
ready
defunct

创建
StatefulWidget状态的createState方法。 并在达到状态后,被调用。created
created initState()
@override
void initState() {
super.initState();
}
initState是在Widget 初始化时只调用一次的方法。
初始化
initState()之后,initialized过渡到状态。
initialized进入状态后didChangeDependencies()调用。
didChangeDependencies()是在 State 对象的依赖项发生变化时调用的方法。
@override
void didChangeDependencies() {
super.didChangeDependencies();
}
准备好
didChangeDependencies()完成后,转移到就绪状态。
第一次build()被立即调用并构建小部件。
setState()将强制重建小部件并build()再次调用。
如果重建父窗口小部件,也会didUpdateWidget()调用。
随后是小部件重建 ( build())。
其他的更新过程,didUpdateWidget()把过程写在.
@override
void didUpdateWidget(MyHomePage oldWidget) {
super.didUpdateWidget(oldWidget);
}
不复存在
小部件被完全摧毁。
在此状态之前dispose()调用。
作为具体示例,dispose()我们将描述与服务终止相关的处理。
@override
void dispose() {
super.dispose();
}
总结
StatefulWidget我希望你已经了解了 .
(created → initialized → ready → defunct)经常
StatefulWidget被使用,所以我认为你不需要太在意
initState()
setState()
dispose()
didChangeDependencies
didUpdateWidget
转:https://zenn.dev/mukkun69n/articles/552173cb084e18
整理:
首次加载
initState()
didChangeDependencies
build
setState修改
一、 widget 完全相同
二、 widget 类型相同,key相同
didUpdateWidget
build
三、 widget 类型相同,key不同; widget 类型不同
initState()
didChangeDependencies
build
hot reload
didUpdateWidget
build
hot restart
initState()
didChangeDependencies
build
didUpdateWidget
build
网友评论