Brzi pregled API-ja za svakodnevni rad.
Ova stranica sažima često korištene klase i metode iz miniriverpod_core.dart i miniriverpod_flutter.dart.
Core Types
Osnovne primitivne vrijednosti stanja i providera.
AsyncValue<T>
AsyncLoading / AsyncData / AsyncError
Provider<T>
Sinkroni provider s neobaveznim autoDisposeom
AsyncProvider<T>
Asinkroni provider sa selektorom .future
Savjet za čitanje
AsyncValue ne uključuje metodu when; koristite switch podudaranje uzoraka ili is provjere.
Ref i ProviderContainer metode
Uobičajene operativne metode za osvježavanje, poništavanje (invalidation), životni ciklus i izvršavanje mutacija.
Uobičajeni redoslijed
Mapa metoda
read / watch / listen : čitanje i pretplata na providere.
invalidate / refresh / refreshValue : ponovno izračunavanje stanja.
onDispose / keepAlive / emit : životni ciklus i povezivanje tokova (stream wiring).
mutation / mutate / invoke : praćene operacije pisanja.
scope / overrideWithValue : DI (ubrizgavanje ovisnosti) i nadjačavanja za testiranje.
Pregled Flutter API-ja
ProviderScope + WidgetRef ulazne točke koje se koriste u kodu aplikacije.
// Scope
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');
}
}
// Izvršavanje mutacije
await ref.invoke(userProvider.rename('Alice'));
ProviderScope(container: external) zahtijeva ručni container.dispose().
UncontrolledProviderScope nikada ne oslobađa ubrizgani container.
Potpuno su podržani Consumer, ConsumerWidget i ConsumerStatefulWidget.
Sljedeći koraci
Mutacije
Implementirajte eksplicitne tokove pisanja uz kontrolu istodobnosti (concurrency control).
Otvori mutacije