美文网首页
Flutter生命周期

Flutter生命周期

作者: 致青春_bf42 | 来源:发表于2020-11-12 13:51 被阅读0次

一、生命周期的基本概念

1、什么是生命周期
  • 说白了就是回调方法(函数)
  • 让你知道我封装好的这个Widget它处于什么样的状态了!
2、有什么作用
  • 监听Widget的事件
  • 初始化数据
    -- 创建数据
    -- 发送网络请求
  • 内存管理
    -- 销毁数据 销毁监听者
    -- 销毁Timer等等

二、Widget的生命周期

1、StatelessWidget的生命周期
  • 构造方法
  • Widget build(BuildContext context)方法
2、StatefulWidget(包含两个对象Widget State)的生命周期
  • Widget构造方法
  • WidgetCreateState
  • State的构造方法
  • StateinitState方法
  • didChangeDependencies方法(改变依赖关系)
    -- 依赖的InheritedWidget发生变化之后,方法也会调用
  • StateWidget build(BuildContext context)方法
    -- 当调用setState方法。会重新调用Widget build(BuildContext context)进行渲染!
  • Widget销毁的时候,调用Statedispose

三、Widget的渲染原理

并不是所有的Widget都会被独立渲染!只有继承RenderObjectWidget的才会创建RenderObject对象!
Flutter渲染的流程中,有三颗重要的树->Widget树 Element树 Render树
Flutter引擎是针对Render树进行渲染!每一个Widget都会创建一个Element对象

  • 隐式调用createElement方法。Element加入Element树中
    -- 它会创建三种Element

  • RenderElement主要是创建RenderObject对象
    -- 继承RenderObjectWidgetWidget会创建RenderElement

    • 创建RanderElement
    • Flutter会调用mount方法,调用createRanderObject方法
  • StatefulElement继承ComponentElement
    -- StatefulWidget会创建StatefulElement

    • 调用createState方法,创建State
    • Widget赋值给state
    • 调用statebuild方法 并且将自己(Element)传出去
      -- build里面的context就是WidgetElement
  • StatelessElement继承ComponentElement
    -- StatelessWidget会创建StatelessElement

    • 主要就是调用build方法 并且将自己(Element)传出去

相关文章

网友评论

      本文标题:Flutter生命周期

      本文链接:https://www.haomeiwen.com/subject/oogubktx.html