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