kaisawind's blog
  • 关于
  • 所有帖子

StatefulWidget:flutter有状态组件 - Fri, Sep 20, 2019

StatefulWidget:flutter有状态组件

  • 1. 概述
  • 2. 生命周期
  • 3. State生命周期函数
  • 4. 生命周期阶段
    • 4.1 初期化
    • 4.2 reload热更新
    • 4.3 析构
  • 5. 代码模板

1. 概述

StatefulWidget是flutter的有状态组件,通过State类对数据进行管理。 example代码位置: example

2. 生命周期

State类最主要管理的是数据的生命周期

Flutter系统架构中关于State的说明(需要翻墙)。

生命周期

3. State生命周期函数

函数描述
State构造函数会在最开始被调用
initStateWidget创建时进行调用,在构造函数之后
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(),
    );
  }
}


辽ICP备2021007608号 | © 2025 | kaisawind

Facebook Twitter GitHub