当前位置: 首页 > news >正文

Flutter 中的生命周期

在 Flutter 中,StatefulWidgetStatelessWidget 这两种 Widget 的生命周期不同,主要关注的是 StatefulWidget,因为它涉及到状态的管理和更新。

StatefulWidget 的生命周期:

1. 创建阶段 (Create)
  • createState()
    • 当你创建一个 StatefulWidget 时,createState() 方法会被调用,并返回一个与该 StatefulWidget 关联的 State 对象。这个方法只会被调用一次。
2. 初始化阶段 (Initialize)
  • initState()
    • 这个方法在 Widget 创建并且 State 对象被插入到 Widget 树时调用。它通常用于执行一些初始化操作,比如网络请求、订阅流、设置初始值等。initState() 只会被调用一次。
3. 构建阶段 (Build)
  • build(BuildContext context)
    • 每次 State 对象的状态发生变化时,Flutter 会调用 build() 方法来重新构建 Widget 树。这个方法会在 State 对象的生命周期中多次调用,通常在 setState() 被调用时,或者当父 Widget 发生变化时。
4. 依赖变化 (Dependencies Changed)
  • didChangeDependencies()
    • State 对象的依赖发生变化时(例如,InheritedWidget 的数据发生变化),Flutter 会调用此方法。它会在 initState() 之后、build() 方法之前调用,并且会在 build() 每次重新构建时调用。
5. 更新阶段 (Update)
  • setState()
    • setState() 是更新 State 对象的状态并触发 build() 方法重新执行的方式。当调用 setState() 时,Flutter 会重新渲染 Widget。
6. 销毁阶段 (Dispose)
  • dispose()
    • State 对象不再需要时,dispose() 会被调用。在这个方法中,我们可以释放资源,如取消订阅流、停止动画、清理控制器等。这个方法只会被调用一次。
StatefulWidget 生命周期的总结图:
1. createState() -> 2. initState() -> 3. build() -> 4. didChangeDependencies() (如果依赖变化)|setState() 触发 build()|5. dispose()

StatelessWidget 的生命周期

StatelessWidget 没有 State,因此没有复杂的生命周期管理。它的生命周期主要是:

  1. 构建阶段:当它第一次被插入到树中时,build() 会被调用。
  2. 更新阶段:每次父 Widget 发生变化时,build() 方法也会被调用。

StatelessWidget 生命周期相对简单,因为它不涉及状态的改变。

相关文章:

Flutter 中的生命周期

在 Flutter 中,StatefulWidget 和 StatelessWidget 这两种 Widget 的生命周期不同,主要关注的是 StatefulWidget,因为它涉及到状态的管理和更新。 StatefulWidget 的生命周期: 1. 创建阶段 (Create) createState():…...

深度整理总结MySQL——redoLog日志工作原理

redo log的工作原理 前言概念为什么需要redo log修改undo页面,会记录对应的redo log吗redo log 和undo log 区别在哪什么是WAL技术redo log要写入磁盘,数据也要写入磁盘,为什么多此一举产生的redo log直接写入磁盘吗redo log 什么时候刷盘innodb_flush_log_at_trx_commit 参数参…...

备战蓝桥杯 Day1 回顾语言基础

开启蓝桥杯刷题之路 Day1 回顾语言基础 1.配置dev 工具->编译选项->勾选编译时加入以下命令->设定编译器配置(release和debug)都要-> -stdc11 ->代码生成/优化->代码生成/优化->语言标准(-std)->ISO C11 ->代码警告->显示最多警告信息(-Wall)…...

小记大模型本地部署:vllm, lmdeploy, ollama

记录一下最近折腾的大模型本地部署。由于学校有部署deepseek的竞赛(觉得扯不?)所以首选ollama这种超级简单的来过关,但我最希望的还是用专门的推理工具部署,因为做应用开发推理速度一定最重要。所以先尝试自己想搞的vl…...

MySQL查看存储过程和存储函数

【图书推荐】《MySQL 9从入门到性能优化(视频教学版)》-CSDN博客 《MySQL 9从入门到性能优化(视频教学版)(数据库技术丛书)》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…...

从零到一:开发并上线一款极简记账本小程序的完整流程

从零到一:开发并上线一款极简记账本小程序的完整流程 目录 前言需求分析与功能设计 2.1 目标用户分析2.2 核心功能设计2.3 技术栈选择 开发环境搭建 3.1 微信开发者工具安装与配置3.2 项目初始化3.3 版本控制与协作工具 前端开发 4.1 页面结构与布局4.2 组件化开发…...

卷积神经网络实战人脸检测与识别

文章目录 前言一、人脸识别一般过程二、人脸检测主流算法1. MTCNN2. RetinaFace3. CenterFace4. BlazeFace5. YOLO6. SSD7. CascadeCNN 三、人脸识别主流算法1.deepface2.FaceNet3.ArcFace4.VGGFace5.DeepID 四、人脸识别系统实现0.安装教程与资源说明1. 界面采用PyQt5框架2.人…...

【面试题系列】Java 多线程面试题深度解析

本文涉及Java 多线程面试题,从基础到高级,希望对你有所帮助! 一、基础概念类 1. 请简述 Java 中线程的几种状态及其转换条件 题目分析:这是多线程基础中的基础,考查对线程生命周期的理解,在多线程编程中&…...

【C语言】左旋字符串(三种实现方式)

题目: 实现一个函数,可以左旋字符串中的k个字符。 例如: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 方法一: 我们画个图分析一下: 基本逻辑: 就是我们每一次旋转之前,我们就取出…...

数论补充 之 前后缀分解问题

文章目录 [0,i-1] 和 [i1,n-1] 共同作用3334,数组的最大因子得分 对于前缀分解问题,我愿把它分为几个大问题:[0,i] 或 [i,n-1] 或 [l,r],或 [0,i-1] 和 [i1,n-1] 共同作用的问题 [0,i-1] 和 [i1,n-1] 共同作用 3334,数组的最大因子得分 3334,数组的最大…...

IoTDB 集群节点 IP 改变,如何更新集群

问题 问题1:如果 IoTDB 配置的时候用的 IP,没有用 hostname,后面 IP 修改了,历史数据需要重新导吗? 问题2:如果现场运行 IoTDB 半年,电脑 IP 要改的话,半年的数据要导出来再导入么…...

【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)

前序文章 【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch) Build a Large Language Model 背景第1章:理解大型语言模型第2章:处理文本数据第3章:编码Attention机制什么是Attention机制?Attention机制的基本原理数学表示应用总结为什么要…...

webshell通信流量分析

环境安装 Apatche2 php sudo apt install apache2 -y sudo apt install php libapache2-mod-php php-mysql -y echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php sudo ufw allow Apache Full 如果成功访问info.php&#xff0c;则环境安…...

数据可视化+SpringBoot+协同过滤推荐算法的美食点餐管理平台

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复的&#xff0c;希望帮助到更多的人。 背景分析 在当今数字化浪潮席卷全球的时代&#xff0c;餐饮行业也正经历着深刻的变革&#xf…...

DeepSeek 关联 Word 使用教程:解锁办公新效率

在当今数字化办公时代&#xff0c;将强大的人工智能模型与常用办公软件相结合&#xff0c;能显著提升工作效率。DeepSeek 作为一款先进的人工智能工具&#xff0c;若能与广泛使用的办公软件 Word 实现关联&#xff0c;可在文档撰写、编辑、内容优化等诸多方面为用户带来极大便利…...

[极客大挑战 2019]Havefun1

[极客大挑战 2019]Havefun1 代码审计发现 根据代码逻辑&#xff0c;要求传入’cat’参数&#xff0c;值为’dog’时执行if的操作&#xff0c;所以构造参数: ?catdog获得flag...

基于Swift实现仿IOS闹钟

仿 iOS 系统闹钟 添加闹钟效果图 收到通知效果图 更新日志 2018.09.12 由于 iOS 系统限制了注册本地推送的数量&#xff0c;最大的注册量为 64 条&#xff0c;且一旦超出 64 条&#xff0c;所有的推送都将失效&#xff0c;故而在添加推送的时候做了一个判断&#xff0c;超过…...

Threadlocal的实现原理

文章目录 ThreadLocal与Thread关系分析Threadlocal 不支持继承性lnheritableThreadLocal 类 ThreadLocal与Thread关系分析 由该图可知&#xff0c; Thread 类中有一个 threadLocals 和一个 inheritableThreadLocals &#xff0c; 它们 都是 ThreadLocalMap 类型 的变量 &#x…...

线程池处理异常

线程池在提交的任务在处理过程中发生了异常&#xff0c;却没有捕获到&#xff0c;导致异常只是输出在控制台&#xff0c;这通常需要把异常记录下来1、通过观察ThreadGroup的构造方法知道&#xff0c;当调用线程组的构造方法时&#xff0c;会获取当前线程所属的线程组&#xff0…...

RabbitMQ配置SSL证书

配置阿里云服务器RabbitMQ-SSL证书【windows】 文章目录 配置阿里云服务器RabbitMQ-SSL证书【windows】1. 证书下载2. 系统中添加证书&#xff08;不知道是不是必要的&#xff09;3. OpenSSL下载4. ca、server证书及私钥提取5. RabbitMQ-SSL证书配置6. 参考博客 1. 证书下载 进…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

蓝桥杯 2024 15届国赛 A组 儿童节快乐

P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡&#xff0c;轻快的音乐在耳边持续回荡&#xff0c;小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下&#xff0c;六一来了。 今天是六一儿童节&#xff0c;小蓝老师为了让大家在节…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...