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会创建RenderElementFlutter会调用mount方法,调用createRanderObject方法
StatefulElement继承ComponentElementStatefulWidget会创建StatefulElement调用
createState创建State将
Widget赋值给state调用
state的build方法,并将自己Element传出去build里面的context就是element
StatelessElement继承ComponentElementStatelessWidget会创建StatelessElement主要就是调用
build方法,并将自己Element传出去
Last updated
Was this helpful?