반응형

Flutter로 개발을 하다보면 State관리에서 여러가지 도구들을 보게된다.

그런데 개인적으로 Provider과 Consumer, FutureBuilder이 헷갈려서 정리해보는 글이다.

LLM최고

 

1. Provider

- 상태 관리 솔루션의 기본 클래스
- 데이터를 앱의 위젯 트리 전체에 제공하는 역할
- 주로 ChangeNotifier와 함께 사용됨

2. Consumer

- Provider에서 제공하는 데이터를 사용하는 위젯
- Provider의 데이터가 변경될 때 자동으로 rebuild됨
- 위젯 트리의 특정 부분만 업데이트할 때 유용

3. FutureBuilder

- 비동기 데이터를 처리하기 위한 위젯
- Future의 상태에 따라 다른 UI를 표시
- API 호출, 데이터베이스 작업 등에 사용

 

주요 차이점:

1. 용도

- Provider: 전역 상태 관리
- Consumer: Provider 데이터 사용 및 UI 업데이트
- FutureBuilder: 비동기 데이터 처리

2. 데이터 유형

- Provider: 모든 타입의 데이터
- Consumer: Provider가 제공하는 데이터
- FutureBuilder: Future 객체

3. 업데이트 방식

- Provider: 데이터 변경 알림
- Consumer: Provider 변경 시 자동 rebuild
- FutureBuilder: Future 완료 시 UI 업데이트

 

위의 문제들이 문제가 된 경우는 주로 'Provider을 어디서 뿌리는지'와 Consumer을 사용하지 않을 경우, Provider에서 notify를 호출해도 왜 UI가 rebuild되지 않는지 등의 문제를 겪다가 개념에 대한 정리가 필요해서 알아봤다.

게다가 최근 Cashed Query를 사용하다 보니 더욱 복잡해져서 헷갈리는 상황이다.

아무튼, 최대한 이해를 열심히 해서 잘 사용해야겠다.

반응형

+ Recent posts