플러터에 상태관리는 매우 중요하다. 화면이 많아지고, 관리해야할 데이터가 늘어남에 따라 상태를 관리하기가 점점 복잡해 진다.
StatefulWidget, bloc, provider 를 통해서 상태를 관리할 수 있지만, 보다 쉬운 사용법때문에 요즘 많이 사용하는 GetX 의
simple state manager 를 통한 상태관리 방법을 알아보자.
GetX의 경우에 상태를 관리하는 방법은 simple state manger 와 reactive state manager 이렇게 두가지가 있다.
simple state manager 를 사용사려면 우선 GetXController 를 상속 받은 컨트롤러가 필요하다.
GeX 에서 상태를 전달하기 위해서는 상태 변화를 전달해야 하는 시점에 update() 함수를 사용해야 한다.
화면을 구현하는 곳에서 상태를 전달 받기 위해서는 컨트롤러를 선언해 주어야 한다.
GetX 컨트롤러에서 상태변화가 일어나는 메서드들을 UI의 동작에 따라 필요한 기능들을 작동시킬 수 있다.
컨트롤러에 선언해 주었던 상태를 변경에 대한 함수를 호출해 준다. 변화된 상태의 반영이 필요한 경우 해당 메서드에서 update() 를 호출해 주면 된다,.
상태가 변할때 GetBuilder를 통해서 변경된 내용을 화면에 반영해 준다. 컨트롤러에서 선언한 timer의 상태를 메서드에서 update()를 호출하면서 빌드되고 그 상태가 UI 에 반영이 된다.
GetX를 통해 상태를 반영하고 싶은 UI에서 update() 통해 반영하는 과정은 provider 와 유사하다.
아직 provider 와 비교해서 사용했을 얼마나 더 좋은지는 직접 확인하지는 못했지만 GetX의 github 에서는 필요한 위젯에서만 상태변화를 설정할 수 있고 컨트롤러를 분리하여 코드를 더 잘 정리할 수 있고 메모리의 사용량 또한 적으며, 별도의 dispose 도 있어서 메모리 관리도 훨씬 효율적으로 할 수 있다고 한다.
[Flutter]StatefulWidget 살펴보기 (0) | 2022.06.20 |
---|---|
[Flutter] main.dart 살펴보기 (0) | 2022.06.13 |