22.Widget树&Render树&Element树
不是所有的
Widget
都会被独立渲染。只有继承 RenderObjectWidget
的才会创建 RenderObject
对象。在
Flutter
中,有三个树非常重要, Widget树
、 Render树
、 Element树
。Flutter引擎
是针对 Render树
进行渲染。- 每一个
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 modified 1yr ago