美文网首页ios 开发
Flutter 渲染原理

Flutter 渲染原理

作者: iOS小洁 | 来源:发表于2022-12-25 20:01 被阅读0次

Flutter 渲染原理

并不是所有的Widget都会被独立渲染。只有继承RenderObjectWidget的Widget才会创建RenderObject对象!

在Flutter渲染的流程中,有Widget树,Element树,Render树等三棵重要的树。Flutter引擎是针对Render树进行渲染;

三棵重要的树:

  • Widget树 -- 区分 StatelessWidget, StateFullWidget
  • Element树 -- 区分是否继承 RenderObjectWidget
  • Render树 -- 渲染引擎渲染的树

Render树

  • 每一个Widget都会创建一个Element对象
    • 隐式调用createElement方法。Element加入Element树中,都会调用mount方法
    • RenderElement主要创建RenderObject对象。继承RenderObjectWidget的widget会创建RenderElement
      • 创建RenderElement
      • Flutter会调用mount方法,调用createRanderObject方法
    • StatefulElement继承ComponentElement。StatefulWidget会创建 StatefulElement
      • 调用createState方法,创建State
      • 将Widget赋值给state
      • 调用state的build方法,并将自己(Element)传出去。build里面的context就是Widget的Element
    • StatelessElement继承ComponentElement。StatelessWidget会创建 StatelessElement
      • 主要就是调用build方法,并且将自己(Element)传出去

相关文章

网友评论

    本文标题:Flutter 渲染原理

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