공부를 하면서 새로 알게된 상태관리 플러그인 riverpod provider들의 개념 정리
riverpod Provider 종류
Provider
- 가장 베이스가 되는 Provider
- 아무 타입이나 반환 가능
- 반환 값을 캐싱할 때 많이 사용
- 여러 Provider를 묶어서 한번에 반환 값을 만들어낼 수 있다.
StateProvider
- ui에서 직접적으로 데이터를 변경하고 싶을 때 사용
- 단순한 형태의 데이터 관리에 사용
StateNotifierProvider
- StateProvider와 마찬가지로 데이터를 직접적으로 변경하고 싶을 때 사용
- 복잡한 형태의 데이터를 관리할 수 있다.
- StateNotifier를 상속한 값을 반환한다.
FutureProvider
- Future 타입만 반환 가능
- 복잡한 기능 또는 사용자의 행동 뒤에 Future를 재실행하는 기능이 없음(단발성)
StreamProvider
- Stream 타입만 반환 가능
- API 요청 결과를 Stream으로 반환할 때 사용
ChangeNotifierProvider
- Provider 마이그레이션 용도로 사용한다.
ref.watch() vs ref.read()
- ref.watch는 반환값이 업데이트 될 때 지속적으로 반환값을 감지하고 있는 함수를 재실행 해준다.
- ref.read는 단발적인 행동이 일어날 때에 사용한다. 예를 들면 onPressed 콜백
Modifier
Family
- 반환 값을 리턴하기 위해 파라미터가 필요할 때 사용
AutoDispose
- 반환 값을 자동으로 초기화하고 싶을 때 사용
Listen
- 반환 값이 업데이트 될 때 특정 함수가 실행되게 하고 싶으면 listen을 사용한다.
- build 함수 안에 선언한다.
Select
- 지정한 값의 변경에만 함수가 재실행될 수 있는 기능을 제공한다.
- ref.watch, listen 둘 다 사용 가능
'Flutter' 카테고리의 다른 글
Flutter Mockito를 이용한 API 통신 Unit Test (0) | 2023.04.19 |
---|---|
Flutter InheritedWidget (0) | 2023.04.18 |
Debounce와 Throttle (0) | 2023.04.06 |
Flutter GoRouter로 페이지 관리하기 (0) | 2023.03.27 |
Flutter [.mapIndexed()] method (0) | 2023.03.19 |