As a result of these optimizations, when the render object tree contains
dirty nodes, only those nodes and a limited part of the subtree around
them are visited during layout.

Sublinear widget building

Similar to the layout algorithm, Flutter’s widget building algorithm
is sublinear. After being built, the widgets are held by the element
tree, which retains the logical structure of the user interface.
The element tree is necessary because the widgets themselves are
immutable, which means (among other things), they cannot remember their
parent or child relationships with other widgets. The element tree also
holds the state objects associated with stateful widgets.