[Flutter / 플러터] GetX 상태관리

2022. 4. 26. 14:51Flutter/Get X

 - GetX 단순 상태관리를 파악하기 위해 Provider 상태관리와의 차이점을 살펴보면서 학습해보았다.

단순상태관리를 설명하기위해 간단한 카운터앱을 만들어보았다.
단순상태관리를 보기위한 페이지 생성
GetX와 Provider 상태관리 위젯 각각 생성

1. Provider

 - Provider의 경우 ChangeNotifier를 상속받은 이벤트 컨트롤러 생성

 - ProviderController 를 Provider 위젯에 반영

Consumer를 생성해서 텍스트를 빌드한다.

 - 빌더부분에 Context, snapshot, child 

 - 버튼을 눌렀을때 ProviderController 에 있는 increase 함수를 실행한다.

 - Consumer가 있기 때문에 listen을 false로 한다. ( 빌드 최소한으로 하기위함 => 가운데 텍스트만 빌드되면서 수정됨)

 

2. GetX 상태관리

 - GetX의 경우 GetxController 를 상속받은 컨트롤러 생성

 - update()를 해서 이벤트를 읽도록 한다.

Get.put 으로 컨트롤러를 선언해주면 바로 사용이 가능하다.
GetBuilder를 통해서 컨트롤러로 이벤트를 읽어들일수 있다.

 -  Get.find를 통해서 함수 사용 가능

 -  Context가 없어서 버튼을 따로 빼서 사용이 가능하다.

그림과 같이 생성할때 선언을 하면 Get.find없이 바로 사용이 가능하다.

 - GetX의 또다른 장점으로 id를 부여해 특정 Context만 수정이 가능하도록 할수있다.

빌더에 id값을 선언을 해주고
버튼을 실행할때 id값을 전달받아 increase함수를 실행할때 id를 전달받도록한다.
컨트롤러에서는 전달받은 id의 값만 update하도록 한다.

3. 느낀점

 - 단순상태 관리만으로는 Provider랑 비슷한점이 많았지만, 다양한 기능을 이용할 수있는 GetX도 충분히 매력적으로 느껴졌다.