일상 작업을 위한 빠른 API 조회.
이 페이지는 miniriverpod_core.dart와 miniriverpod_flutter.dart에서 자주 사용하는 클래스와 메서드를 요약합니다.
핵심 타입
핵심 상태와 provider 기본 요소입니다.
AsyncValue<T>
AsyncLoading / AsyncData / AsyncError
Provider<T>
선택적 autoDispose가 있는 동기 provider
AsyncProvider<T>
.future 선택자가 있는 비동기 provider
읽기 팁
AsyncValue에는 when 메서드가 없습니다. switch 패턴 매칭 또는 is 검사를 사용하세요.
Ref 및 ProviderContainer 메서드
새로고침, 무효화, 생명주기, mutation 실행을 위한 일반적인 작업 메서드입니다.
일반적인 순서
메서드 맵
read / watch / listen : providers를 읽고 구독합니다.
invalidate / refresh / refreshValue : 상태를 다시 계산합니다.
onDispose / keepAlive / emit : 생명주기와 스트림 연결.
mutation / mutate / invoke : 추적되는 쓰기 작업.
scope / overrideWithValue : DI 및 테스트 오버라이드.
Flutter API 스냅샷
앱 코드에서는 ProviderScope와 WidgetRef 진입점을 사용합니다.
// 스코프
ProviderScope(
child: const App(),
);
// ConsumerWidget
class Header extends ConsumerWidget {
const Header({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final user = ref.watch(currentUser);
return Text('$user');
}
}
// mutation 실행
await ref.invoke(userProvider.rename('Alice'));
ProviderScope(container: external)은 container.dispose()를 수동으로 호출해야 합니다.
UncontrolledProviderScope는 주입된 container를 절대 dispose하지 않습니다.
Consumer, ConsumerWidget, ConsumerStatefulWidget를 모두 지원합니다.