BuildContext
각 위젯은 독립적으로 존재하지 않고, 다른 위젯들과 함께 존재한다.
하지만, 위젯 자체만으로는 위젯이 어느 지점에 존재하는지 알 수 있는 방법이 없다.
위젯트리 내에서 자신이 어떤 곳에 존재하는지에 대한 위치정보가 위젯에게 없다는 말이다.
abstract class Widget extends DiagnosticableTree { Element createElement(); // 추상메서드 }
abstract class Element extends DiagnosticableTree implements BuildContext {
때문에, 위젯은 createElement() 함수를 통해 Element를 생성한다.
Element 클래스는 BuildContext를 구현한다.
Element에는 Widget, parent, childrent, size, Render Object 등의 정보가 담겨있다.
결론적으로, BuildContext는
A handle to the location of a widget in the widget tree.
위젯의 위치정보를 담고있는 클래스다.