StatefulWidget을 이용해 상태를 변경 할 때, setState()를 사용해야 한다.
즉, setState()는 StatefulWidget에서 특정 오브젝트의 값을 변경하기 위해 사용하는 메서드로, setState()안에서 상태를 변경하면 변경된 상태를 기반으로 build() 메소드를 실행시킨다.
단점 : widget에서 build가 호출될 때마다 위젯 전체를 다시 렌더링하기 때문에 성능저하가 일어날 수 있다. 또한, 하나의 페이지 안에서만 유효한 상태관리이다.
Flutter 개발을 위한 매우 가볍고 강력한 라이브러리
GetX를 이용한 상태관리 방식
1. 단순 상태 관리 : 기존 데이터의 변경여부와 관계없이 재렌더링 하는 것
2. 반응형 상태 관리 : 데이터 변화가 있을 때에만 재렌더링 하는 것
GetX를 사용해서 상태관리를 하기 위해서는 controller를 등록해서 사용해주어야 한다. Controller를 등록해줌으로써 하위의 모든 위젯은 controller에서 변경되는 데이터들을 실시간 반영 가능해지게 된다.
반응형 상태 관리를 위한 Controller를 만들어준다. 단순 상태관리와 달리 변수의 타입을 RxInt, RxString 등 Rx{타입}의 방식으로 선언하고 변수의 값은 '.obs'를 붙인다.
(만약 .obs를 사용한다면, 사용방식은 거의 동일하지만 GetX()와 달리 controller의 이름을 지정할 수 없다)
- 업데이트를 해도 update()를 따로 호출할 필요가 없다
BuildContext context 의 무쓸모GetBuilder 사용하거나 Get.find 이용해 데이터 불러오기