GetX - GetView

Obebe·2025년 4월 12일

Flutter

목록 보기
6/10

Flutter에서 GetX를 사용할 때 자주 마주치는 위젯 중 하나가 GetView<T>입니다.
이번 글에서는 GetView가 어떤 역할을 하고, 왜 쓰는지, 언제 쓰는 게 좋은지 자세히 정리해보겠습니다.

✅ GetView란?

GetView<T>StatelessWidget을 상속한 GetX 전용 위젯으로,
해당 타입의 컨트롤러(T)에 직접 접근할 수 있는 controller 속성을 기본으로 제공합니다.


📌 일반 StatelessWidget에서는 Get.find()를 직접 호출해야 하지만,
GetView를 쓰면 controller로 바로 접근할 수 있어 코드가 간결해집니다.


그럼 왜 GetView를 사용하는걸까요?

🎯 왜 쓰는가?

기존 방식GetView 사용
final controller = Get.find<T>() 직접 선언 필요controller 속성으로 바로 사용 가능
중복된 컨트롤러 선언 많음반복 제거, 코드 간결
여러 위젯마다 Get.find() 호출 필요View와 Controller 1:1 연결에 최적화

🚨 주의사항

  • Get.put() 또는 Get.lazyPut() 등으로 컨트롤러가 미리 등록되어 있어야 합니다.

  • 여러 컨트롤러가 필요한 복잡한 뷰에는 StatelessWidget + Get.find() 조합이 더 유연할 수 있습니다.


💡 언제 사용하는 게 좋을까?

✅ 적합한 상황❌ 피해야 할 상황
컨트롤러 1개만 사용하는 단순한 페이지여러 컨트롤러를 동시에 써야 하는 복잡한 페이지
반복되는 Get.find()를 줄이고 싶을 때컨트롤러를 조건부로 불러야 하는 경우
View와 Controller가 1:1 매칭되는 구조일 때View가 상태에 따라 컨트롤러를 동적으로 다뤄야 할 때

🧪 실전 예시

📁 controller/home_controller.dart

class HomeController extends GetxController {
	final title = 'Hello, GetView!'.obs;
}
class HomePage extends GetView<HomeController> {
	 const HomePage({super.key});

	 @override
	 Widget build(BuildContext context) {
 		 return Obx(() => Text(controller.title.value));
	}
}
profile
다른 건 노력의 시간

0개의 댓글