본문 바로가기

Flutter

뒤늦게 정리하는 Flutter riverpod 개념

 공부를 하면서 새로 알게된 상태관리 플러그인 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