- ref는 다른 Provider에 쉽게 접근할 수 있는 역할을 합니다.
- ref는 Provider의 라이프사이클을 관리합니다.
- ref.read(): 다른 Provider의 값을 읽을 때 사용.
- ref.watch(): 다른 Provider의 상태를 구독하고, 상태가 변경되면 자동으로 반응.
- ref.listen(): 상태가 변경될 때 특정 로직을 실행할 때 사용.
// PostRepositoryImpl 인스턴스를 제공하는 Riverpod Provider 계열 입니다.
// 컨테이너에 넣는 코드
import 'package:class_riverpod_mvvm/providers/provider/dio_provider.dart';
import 'package:class_riverpod_mvvm/repository/post_repository_impl.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
/// (ref) {...} 익명 함수이며, ref는 Riverpod 에서 제공하는 통로를 담당하는 객체 입니다.
/// ref를 통해 프로바이더 내에서 다른 프로바이더를 읽거나 라이프 사이클을 관리할 수 있다.
final postRepositoryProvider = Provider<PostRepositoryImpl>( (ref) {
// ref 객체를 통해 다른 Provider 에 접근을 마음대로 할 수 있다.
final dio = ref.read(dioProvider);
// 의존성 주입 -> dio는 Provider 가 관리하고 있는 객체라 프로바이더를 통해서 가져 왔다.
return PostRepositoryImpl(dio);
});
728x90
'Flutter' 카테고리의 다른 글
riverpod 과 MVVM 활용 - viewModel 을 관리하는 Provider 계열을 만들어 보자(7) (0) | 2024.11.21 |
---|---|
riverpod 과 MVVM 활용 - 화면의 데이터(상태)를 관리하는 PostListViewModel 을 먼저 만들어 보자(6) (0) | 2024.11.21 |
riverpod 과 MVVM 활용 - 데이터 접근 계층인 PostRepository 만들어 보자(4) (0) | 2024.11.20 |
riverpod 과 MVVM 활용 - API에서 사용할 데이터 구조를 정의하기 위해 Post 클래스를 만들어 보자.(모델링 작업)(3) (0) | 2024.11.19 |
riverpod 과 MVVM 활용 - Http 통신 클라이언트 Dio 객체를 만들어 보자(2) (0) | 2024.11.19 |