美文网首页
Flutter生命周期

Flutter生命周期

作者: 宇轩Simid | 来源:发表于2020-06-17 19:00 被阅读0次
    • 生命周期

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

      1. Stateless
        • 1、构造方法
        • 2、build 方法
      2. Stateful(包含两个对象Widget、State)
        • 1、Widget的构造方法
        • 2、Widget的CreateState
        • 3、State的构造方法
        • 4、State的initState 方法
        • 5、didChangeDependencies()// 改变依赖关系
          • 依赖的InheritedWidget发生变化之后,方法也会调用。(InheritedWidget数据共享,所在树最顶节点以下的所有子部件都可以进行数据共享,为了解决Widget间及子部件的数据传递)
        • 6、State的build
          1. 当调用setState方法,会重新调用build进行渲染。element.markNeedsBuild()
          2. element就是context
        • 7、当Widget销毁的时候,调用State的dispose
    • Widget 的渲染原理

      1. 并不是所有的Widget都会被独立渲染,只有继承RenderObjectWidget才会被独立渲染,在Flutter渲染的流程中,有三颗重要的树,Flutter引擎针对Render树进行渲染
      • Widget树、Element树、Render树
        • 每一个Widget都会创建一个Element对象,隐式调用createElement()方法,将element加入Element树,它会创建三种Element(RenderObjectElement、StatefulElement、StatelessElement)
          1. RenderObjectElement:主要是创建RenderObject对象(继承RenderObjectWidget的Widget会创建RenderObjectElement)
            1. 创建RanderObjectElement
            2. Flutter会调用mount方法,调用createRanderObject()方法
          2. StatefulElement:继承ComponentElement
            1. 调用creatElement(),创建Element
            2. 调用creatState(),创建State
            3. 将Widget赋值给state.widget
            4. 调用state的build方法,并将自己(Element)传出去(build里面的context就是Widget的Element)
          3. StatelessElement:继承ComponentElement
            1. 调用creatElement(),创建Element
            2. 调用build方法,并将自己(Element)传出去(build里面的context就是Widget的Element)

    相关文章

      网友评论

          本文标题:Flutter生命周期

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