Flutter生命周期和渲染原理

生命周期概念

1.生命周期本质是回调方法和函数
2.通俗的讲就是你的封装的Widget(小组件)处于什么状态

生命周期作用

     1. 监听Widget事件
     2. 初始化数据
             - 创建数剧
             - 发送网络请求
    3. 内存管理
             - 销毁数据
             - 销毁监听着
             - 销毁timer等等

Widget的生命周期

        1.Stateless(Widget对象)
             - Widget构造方法
             - build方法
         2.Stateful(Widget对象 和 State对象)
             - Widget构造方法
             - Widget的CreateState
             - State的构造方法
             - State的initState方法
             - didChagedDependencies方法(改变依赖关系时候调用)
                      - 当依赖的inheritedWidget发生变化的之后,方法也会调用
             - State的build方法
                      - 当调用setState方法时候,会重新调用build方法
            - 当Widget销毁的时候,调用State的dispose方法

Widget渲染原理

并不是所有的Widget都会被独立渲染!只有继承RenderObjectWidget的才会创建RenderObject对象,加入到Render Tree里面去 才会被渲染

Widget树、Element树、Render树

  - 每一个Widget都会创建一个Element对象
       - 隐式调用createElement方法,将Element加入到Element
          树中(它会创建三种Element)           
          - RenderElement主要创建Renderobject对象
         (继承RenderObjectWidget的Widget会创建RenderElement)
                - 创建RanderElement
                - Flutter会调用mount方法,调用createRanderObject
         - StatefulElement 继ComponentElement
              (StatefulWidget会创建StatefulElement)
                  - 调用createState方法,创建State
                  - 将Widget赋值给State
                  - 调用State的build方法,并将自己(Element)传出去         
                  (build方法里的context就是Widget的Element!)
          - StatelessElement 继承ComponentElement 
           (StatelessWidget会创建StatelessElement)
                    - 主要就是调用build方法 并且将自己(Element) 
                      传出去
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 生命周期的基本概念:生命周期的本质上就是回调方法,这个回调方法能够让我们知道这个widget处于一个什么样的状态。...
    HardCabbage阅读 933评论 0 3
  • 生命周期的基本概念: 接下来我们来看一下Widget的生命周期 首先我们来实现一下无状态的StatelessWid...
    大橘猪猪侠阅读 1,332评论 0 0
  • 1.生命周期 生命周期是别人封装好的一套方法接口,然后提供回调方法给我们调用,生命周期本质是回调方法; 2.生命周...
    ChaosHeart阅读 1,384评论 0 1
  • 生命周期的基本概念: 生命周期的本质就是回调方法; 可以通过封装好的回调方法获取widget状态; 有什么作用: ...
    DarkArtist阅读 469评论 0 0
  • 生命周期的基本概念 什么是生命周期 说白了就是回调方法 让你知道我封装好的这个Widget处于什么样的状态 有什么...
    E术家阅读 319评论 0 0