데브허브 | DEVHUB | How Flutter Works: The RenderObjectWidget #DecodingFlutterHow Flutter Works: The RenderObjectWidget #DecodingFlutter
- RenderObjectWidget은 위젯 구성 대신 렌더 트리를 직접 채우는 핵심 역할을 합니다. 🌳
- StatelessWidget과 StatefulWidget은 RenderObjectWidget으로 귀결되는 수단이며, 화면에 실제 렌더링되는 유일한 경로는 RenderObjectWidget입니다. 💡
- RenderObjectWidget이 없는 위젯 트리는 아무것도 렌더링하지 않습니다. 👻
- 위젯 및 엘리먼트 트리는 1:1 관계를 가지지만, 렌더 트리는 StatelessWidget과 StatefulWidget 노드가 비어있는 "가지치기된" 형태로, 오직 RenderObjectWidget만이 RenderObject에 대응합니다. ✂️
- StatelessWidget과 StatefulWidget은 렌더링 작업을 직접 수행하지 않고, 다른 위젯을 조립하여 렌더링 작업을 "지시"하는 중간 관리자 역할을 합니다. 🧑💼
- 고수준 개념(예: AppBar)은 StatelessWidget/StatefulWidget이 담당하고, 저수준 시각적 구성 요소(예: 정렬, 크기)는 RenderObjectWidget이 담당하여 UI를 구축합니다. 🧱
- RenderObjectWidget의 엘리먼트는 createRenderObject로 RenderObject를 생성하고, 업데이트 시 updateRenderObject로 필드를 최신 값으로 갱신합니다. 🔄
- RenderObjectWidget은 RenderObject를 생성하고 업데이트하는 간단한 역할만 하며, 실제 렌더링의 "재미있는" 부분은 RenderObject가 담당합니다. 🎉