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를 사용하다 보니 더욱 복잡해져서 헷갈리는 상황이다.
아무튼, 최대한 이해를 열심히 해서 잘 사용해야겠다.
'Flutter' 카테고리의 다른 글
[Flutter] Supabase활용 시 타입을 위한 라이브러리 (0) | 2025.01.06 |
---|---|
[Flutter] 플러터! 안드로이드와 아이폰 모두 디자인 할 수 있는 도구 (0) | 2021.01.10 |
[Flutter] 안드로이드 스튜디오를 사용하여 Flutter 프로젝트 생성하기 (0) | 2021.01.10 |