Skip to content

Latest commit

 

History

History
31 lines (14 loc) · 1.38 KB

三棵树.md

File metadata and controls

31 lines (14 loc) · 1.38 KB

image

Widget Element RenderObject三棵树之间的关系

Widget只负责配置数据结构,轻量级。
Element持有着Widget和RenderObject,Element 负责 Widget 的渲染逻辑,是一个实体,是Widget和RenderObject之前的桥梁;它的作用是配置好 Widget 在树中的位置,并且保持对于相对应的RenderObject 和 Widget 的引用且善于比较它们前后的不同。Element的抽象对象就是我们经常用到的 BuildContext
RenderObject主要负责layout、paint等复杂操作,是一个真正渲染到屏幕上的View,开销大;
其中,widget和Element是一对多的关系,widget不可变(只能销毁并生产新的,因为较为轻量,所以开销不大),element和RenderObject可变,

解释1

解释2

解释3

解释4

解释5

解释6

解释7

解释8