#3-2 GetX - 종속성관리 : Binding

2022. 1. 21. 12:55Flutter

반응형

 

Get이 제공하는 바인딩 클래스는 상태 관리자와 종속성 관리자에 라우트를 결합하는 동시에 종속성 주입을 분리하는 클래스이다. 이를 통해 Get은 특정 컨트롤러가 사용될 때 표시되는 스크린을 알고 어디서 어떻게 그것이 제거되는지 알 수 있다. 

📢바인딩 클래스 만들기

// count_binding.dart

import 'package:get/instance_manager.dart';
import 'package:getstudy/controller/reactive_controller.dart';

class CountBinding implements Bindings {
  @override
  void dependencies() {
    Get.put(ReactiveController());
  }
}

class를 생성하고 Binding을 implement한다. dependencies 안에 사용할 컨트롤러를 넣어준다.

📢라우트에 바인딩 사용 알리기 - 명명된 라우트

// main.dart

void main() {
  runApp(
    GetMaterialApp(
      home: MyApp(),
      debugShowCheckedModeBanner: false,
      getPages: [
        GetPage(
            name: "/reactive",
            page: () => ReactiveStateManager(),
            binding: CountBinding()),
      ],
    ),
  );
}

Get.toNamed()를 사용하면 라우트 지정시 binding 속성으로 바인딩 클래스를 넣어준다.

📢라우트에 바인딩 사용 알리기 - 일반 라우트

 // main.dart
 
            ElevatedButton(
              onPressed: () {
                Get.to(
                  () => ReactiveStateManager(),
                  binding: CountBinding(),
                );
              },
              child: Text(
                "반응형 상태관리",
                style: TextStyle(
                  fontSize: 20,
                ),
              ),
            )

Get.to()를 사용하면 Get.to()안에 binding 속성으로 바인딩 클래스를 넣어준다.

 

 

즉, 바인딩 시점은

1. Get.to() - 페이지 이동 시 바인딩 클래스 추가

2. Get.toNamed() - 라우트 설정 시 바인딩 클래스 추가

이렇게 볼 수 있을 것 같다.

 

 

 

반응형