StatefulWidget 生命周期

StatefulWidget 生命周期

widget基础学习参考:flutterchina
针对该篇内容进行了StatefulWidget的生命周期测试,从而绘制出自己所了解的大致生命周期流程图,
如果有更好的生命周期过程,欢迎分享

import 'package:flutter/material.dart';

class CouterWidgetState extends StatefulWidget {
  const CouterWidgetState({Key key, @required this.initValue: 0})
      : super(key: key);
  final int initValue;
  @override
  State<StatefulWidget> createState() => new CouterState();
}

/// 创建并打开:initState->didChangeDependencies->build.   
/// 横竖屏切换:didUpdateWidget->build  当前值保留
/// 离开页面:deactivate->dispose 重新进入init重新初始化
/// 热重载执行:reassemble->didUpdateWidget->build
/// 调用setState->build
class CouterState extends State<CouterWidgetState> {
  int _couter;
  /// 初始化调用
  @override
  void initState() {
    super.initState();
    _couter = widget.initValue;
    print('initState$_couter');

  }

  /// State对象依赖发生变化调用;系统语言、主题修改,系统也会通知调用
  @override
  void didChangeDependencies() {
    // TODO: implement didChangeDependencies
    super.didChangeDependencies();
    print('didChangeDependencies');
  }
  /// 热重载会被调用,在release下永远不会被调用
  @override
  void reassemble() {
    // TODO: implement reassemble
    super.reassemble();
    print('reassemble');
  }

  /// 新旧Widget的key、runtimeType不变时调用。也就是Widget.canUpdate=>true
  @override
  void didUpdateWidget(CouterWidgetState oldWidget) {
    // TODO: implement didUpdateWidget
    super.didUpdateWidget(oldWidget);
    print('didUpdateWidget');
  }

  /// State在树种移除调用
  @override
  void deactivate() {
    // TODO: implement deactivate
    super.deactivate();
    print('deactivate');
  }

  /// State在树中永久移除调用,相当于释放
  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    print('dispose');
  }

  /// 用于子树的渲染
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    print('build');
    return Scaffold(
      body: Center(
        child: FlatButton(
          child: Text('$_couter'),
          onPressed: (){
            setState(() {
             ++_couter; 
            });
          },
        ),
      ),
    );
  }
}

StatefulWidget生命周期

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值