专栏首页小黑娃HenryFlutter(七)--Widget的生命周期(周期方法)Flutter(七)--Widget的生命周期(周期方法)

Flutter(七)--Widget的生命周期(周期方法)Flutter(七)--Widget的生命周期(周期方法)

人类演化

概述: 任何前端、移动端开发都会涉及到可视化组件的生命周期,也就是这个组件从生到死的过程,我们所能感知、控制的就是每一个阶段对应的系统回调函数。

整个过程不无外乎包含这几步,但是或多或少在期间还有其他的方法。

graph TD
A[构造函数] -->|初始化完成| C{展示完成}
C -->|页面更新| C
C -->|消失| E[销毁]

周期方法: 所谓的生命周期,本质上就是周期方法的调用。而周期方法就是开发者放出的各种回调方法。 作用也就很好理解了,就是让使用者知道当前组件处于哪种状态、并处理各阶段的自定义操作(数据、UI等)。

Flutter-Widget的生命周期

言归正传现在来说说Fluuter中Widget的生命周期都包含哪些方法,这些方法都是在什么时机被调用的。 这是常见的方法,我通过一个表格来展示,展示顺序也是调用顺序:

StateLessWidget

StatefulWidget

init(构造方法)

Widget-Init(构造方法)

CreateState()

State-init

initState()

didChangeDependencies()

didUpdateWidget()

build()

State-buid()

deactivate()

dispose()

重点备注几个不是很好理解的方法:

  • initState 只会在首次创建时触发该方法,而在rebuild时并不会触发该方法。
  • didChangeDependencies Widget的依赖关系发生变化时会触发该方法,这个很好理解就是Widget树中父Widget发生变化。除此之外还有状态管理也叫数据共享同样会触发该方法.
  • didUpdateWidget 当父Widget发生setState()时,父Widget并不会发生触发该方法,只会触发子Widget的该方法。
  • deactivate 是Widget要从Widget树中移除时会触发该方法,在该方法中可以改变Widget的依赖关系,避免该Widget被销毁.

除此之外还有一些和App整体有关的周期方法:

  • resumed App可见且获取焦点状态;
  • inactive App处于非活动状态;
  • paused App不可见,后台运行状态;

总: Widget常见的生命周期方法也就是这些,并没有什么难度。如果涉及到生命周期方法和Widget的渲染原理之间的关系,一下就有意思起来了。请查看第八期Widget的渲染逻辑

传送门:

Flutter-汇总

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Flutter--Flutter中Widget、App的生命周期

      在App的开发过程中,我们通常都需要了解App以及各个页面的生命周期,方便我们在App进入前台时启动一些任务,在进入后台后暂停一些任务。同时,各个页面的生命...

    mukekeheart
  • Flutter —生命周期

    flutter 也有自己的生命周期,但跟 Android 比起来就显得弱化了,官方定义的生命周期只有五个,实际应用中还需要WidgetsBindingObser...

    CatEatFish
  • Flutter之 State 生命周期

      State 的生命周期,指的是在用户参与的情况下,其关联的 Widget 所经历的,从创建到显示,再到更新最后到停止,直至销毁等各个阶段

    不会飞的小鸟
  • 提到生命周期,我们是在说什么?

    Widget是不可变的,更新则意味着销毁+重建。StatelessWidget是不可变的,一旦创建则无需更新;对于StatefulWidget来说,在State...

    拉维
  • 【Flutter 专题】54 图解 Flutter 基本生命周期

    和尚使用 Flutter 这么长时间,并没有认真研究过 Flutter 的生命周期,今天和尚分几个场景学习一下 Flutter 的生命周期;

    阿策小和尚
  • 图解React生命周期方法

    CherishTheYouth
  • Flutter 中与平台相关的生命周期

    此篇文章所说的生命周期与 StatefulWidget 组件的生命周期是不同的,这里平台相关的生命周期指的是特定平台相关操作所产生的生命周期,比如 Androi...

    老孟Flutter
  • React16废弃的生命周期和新的生命周期

    废弃的原因:是在React16的Fiber架构中,调和过程会多次执行will周期,不再是一次执行,失去了原有的意义。此外,多次执行,在周期中如果有setStat...

    愤怒的小鸟
  • 学习Flutter之前,你先要了解这些

    Flutter 出来已经有些日子了,越来越多的开发者也开始尝试使用 Flutter 进行开发,Flutter 是谷歌的移动UI框架,基于 Dart 语言,支持多...

    用户2802329
  • Flutter(六)--有状态的组件StatefulWidget&StateFlutter(六)--有状态的组件StatefulWidget&State

    用户8893176
  • Activity状态和生命周期方法

    前面两期我们学习了Activity的创建和注册、以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还需要学习了解更多。 ...

    分享达人秀
  • vue的生命周期

    windseek
  • Sevlet的生命周期

    Servlet的生命周期是指: servlet类对象什么时候创建,什么时候调用什么方法,什么时候销毁。

    望天
  • Activity的生命周期

    前言: 接触Android快两个礼拜了,虽然已开发了一个非常简单的app,但却还没有理清Activity的生命周期,自然对它里面的几种方法的含义没有彻底清楚的认...

    用户1215536
  • Servlet的生命周期

    ·容器如何创建Servlet对象、如何为Servlet对象分配资源、如何调用Servlet对象的方法来处理请求、以及如何销毁Servlet对象的整个过程。

    qubianzhong
  • Maven的生命周期

    Maven的生命周期其实是指它对所有的构建过程进行了反复的推敲、反思,之后总结了一套高度抽象过程。基本上包含了项目的清理、初始化、编译、测试、打包、集成测试、验...

    SmileNicky
  • React.js的生命周期

    目前,我们只学习了一种方法来更新UI,即调用 ReactDOM.render() 改变输出

    JavaEdge
  • Bean的生命周期

    Bean 的生命周期从Spring容器着手实例化Bean开始,直到最终销毁Bean,这当中经过了许多关键点,每个关键点都涉及特定方法的调用,可以将这些方法大致划...

    java干货
  • 类的生命周期

    一个类从被加载到虚拟机内存开始,到卸载出内存为止,这个生命周期经历了七个阶段:加载、验证、准备、解析、初始化、使用、卸载。

    孙晨c

扫码关注云+社区

领取腾讯云代金券