Flutter에서 context
는 위젯 트리에서 현재 위치를 나타내는 참조로 사용됩니다. BuildContext
타입으로 표현되며, 위젯 트리의 특정 위치에 대한 정보와 관련 메서드를 제공합니다.
context
의 주요 역할과 사용 사례는 다음과 같습니다:
위젯 트리 내 위치 참조: context
는 현재 위젯의 위치를 위젯 트리에서 참조합니다. 이를 통해 현재 위치에서 부모나 조상 위젯에 접근할 수 있습니다.
테마 및 스타일 정보 접근: context
를 사용하여 ThemeData
와 같은 상위 위젯에서 제공하는 데이터에 접근할 수 있습니다. 예를 들어, Theme.of(context)
를 사용하여 앱의 전반적인 테마 설정에 접근할 수 있습니다.
Navigator 사용: context
를 통해 Navigator
에 접근하고, 새로운 화면으로 전환하거나 현재 화면을 종료하는 등의 작업을 수행할 수 있습니다.
위젯의 속성 정보 얻기: context
를 사용하여 현재 위젯의 속성, 예를 들어 크기, 위치 등의 정보를 얻을 수 있습니다.
InheritedWidget 조회: context
를 사용하여 상위의 InheritedWidget
에서 데이터를 가져올 수 있습니다. InheritedWidget
은 정보를 하위 위젯들에게 효율적으로 전달하는 방법을 제공합니다.
간단한 예시로, context
를 사용하여 앱의 테마 색상에 접근하는 방법은 다음과 같습니다:
Color primaryColor = Theme.of(context).primaryColor;
위의 코드에서 Theme.of(context)
는 주어진 context
에 가장 가까운 Theme
위젯을 찾아 그 테마 데이터에 접근하게 해줍니다.
Flutter 앱 개발 시, 여러 위젯에서 BuildContext
를 필요로 하는 경우가 많습니다. 따라서, 위젯을 구성하거나 상호작용하는 동안 context
의 역할과 중요성을 자주 마주치게 될 것입니다.