본문 바로가기
Flutter

[Flutter] 상태 관리

by 개발짜 2024. 10. 23.

flutter 는 변수나 데이터의 값이 변경되면 상태 값이 변경됐다고 할 수 있다.

사용자는 상태가 변경된 UI 를 봐야하므로 데이터의 변동이 있을 경우 실시간으로 상태 값을 조정해야 한다.

새로고침 하는 거 처럼 setState() 를 사용하면 상태 값을 reloading 할 수 있다.

 

setState() 는 build() 함수를 호출하여 UI 를 다시 그려주는 함수이다.

상태 값이 변경될 때 setState() 를 호출한다.

 

하지만 만능일 거 같은 setState() 에도 한계가 있었으니... 

 

setState() 의 한계

1. 상태 공유의 어려움

2. 규모가 커질 때 복잡도가 증가

3. 성능 문제

4. 전역 상태 관리의 부재

 

그래서 보통은 pub.dev 에서 사람들이 잘 만들어놓은 상태 관리 매니저(컨트롤러)를 쓰는 게 좋다!

대표적으로는 

- Getx

- Provider

- Bloc/Cubit

- Riverpod

이렇게 있고 지금은 GetX 먼저 공부할 예정이다.

 

GetX 를 통한 Controller 구현 방법

1. GetX 라이브러리 설치

2. GetxController 상속받는 컨트롤러 생성

3. 컨트롤러 의존성 주입(main 의 build 에서 Get.put(Controller());)

4. 컨트롤러에 상태 변경될 변수/객체/함수 등 등록

5. 컨트롤러에 등록한 이벤트 호출

6. GetBuilder 를 통한 UI 동기화

 

 

대표적은 GetX 의 이벤트

페이지 이동

Get.to(() => myPage());

 

상태 의존성 주입

Get.put(MyController());

 

컨트롤러 찾기

Get.find<MyController>();

 

 

댓글