1. 概述
StatefulWidget
是flutter的有状态组件,通过State
类对数据进行管理。
example代码位置: example
2. 生命周期
State
类最主要管理的是数据的生命周期
Flutter系统架构中关于State
的说明(需要翻墙)。
3. State
生命周期函数
函数 | 描述 |
---|---|
State |
构造函数会在最开始被调用 |
initState |
Widget 创建时进行调用,在构造函数之后 |
didChangeDependencies |
当State 对象的依赖发生变化时会被调用 |
build |
它用于构建Widget 子树的,当setState 触发的时候会被调用 |
didUpdateWidget |
组件状态改变时候调用 |
deactivate |
当State 对象从树中被移除时,会调用此回调。 |
dispose |
当State对象从树中被永久移除时调用;通常在此回调中释放资源。 |
reassemble |
在热重载(hot reload)时会被调用,此回调在Release模式下永远不会被调用 |
4. 生命周期阶段
4.1 初期化
构造函数
↓initState
↓didChangeDependencies
↓build
4.2 reload
热更新
reassemble
↓didUpdateWidget
↓build
4.3 析构
deactivate
↓dispose
5. 代码模板
import 'package:flutter/material.dart';
class MyStatefulWidget extends StatefulWidget {
@override
_MyStatefulWidgetState createState() => _MyStatefulWidgetState();
}
class _MyStatefulWidgetState extends State<MyStatefulWidget> {
_MyStatefulWidgetState() {}
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text('Stateful Widget'),
),
body: Center(),
);
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 wind.kaisa@gmail.com