StatefulWidget:flutter有状态组件 - Fri, Sep 20, 2019
StatefulWidget:flutter有状态组件
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(),
);
}
}