22.Widget树&Render树&Element树
Widget 的渲染原理
不是所有的 Widget
都会被独立渲染。只有继承 RenderObjectWidget
的才会创建 RenderObject
对象。
在 Flutter
中,有三个树非常重要, Widget树
、 Render树
、 Element树
。Flutter引擎
是针对 Render树
进行渲染。
Widget树 、 Render树 、 Element树
每一个
Widget
都会创建一个Elememt
对象隐式调用
createElement
方法。Element
加入Element树
中它会创建三种
Element
RenderElement
主要是创建RenderObject
对象继承
RenderObjectWidget
的Widget
会创建RenderElement
Flutter
会调用mount
方法,调用createRanderObject
方法
StatefulElement
继承ComponentElement
StatefulWidget
会创建StatefulElement
调用
createState
创建State
将
Widget
赋值给state
调用
state
的build
方法,并将自己Element
传出去build
里面的context
就是element
StatelessElement
继承ComponentElement
StatelessWidget
会创建StatelessElement
主要就是调用
build
方法,并将自己Element
传出去
Last updated