State 生命周期
图解
例子
class _CounterWidgetState extends State<CounterWidget> {
int _counter = 0;
void initState() {
super.initState();
print("initState");
}
void didChangeDependencies() {
super.didChangeDependencies();
print("didChangeDependencies");
}
Widget build(BuildContext context) {
print("build");
return Scaffold(
body: Center(
child: TextButton(
child: Text('$_counter'),
onPressed: () => setState(
() => ++_counter,
),
),
),
);
}
void reassemble() {
super.reassemble();
print("reassemble");
}
void didUpdateWidget(CounterWidget oldWidget) {
super.didUpdateWidget(oldWidget);
print("didUpdateWidget ");
}
void deactivate() {
super.deactivate();
print("deactivate");
}
void dispose() {
super.dispose();
print("dispose");
}
}
运行应用,会输出
initState
didChangeDependencies
build
点击⚡️按钮热重载,会输出
reassemble
didUpdateWidget
build
点击 0,增加 _counter,会输出
build
在 widget 树中移除CounterWidget
Widget build(BuildContext context) {
//移除计数器
//return CounterWidget ();
//随便返回一个Text()
return Text("xxx");
}
然后热重载,会输出
reassemble
deactive
dispose