Ergonomi bergaya Riverpod dengan perilaku runtime yang eksplisit.
miniriverpod menjaga agar Provider dan AsyncProvider tetap terasa familier, tetapi mempersempit perilaku ke dalam API eksplisit: subclass + args untuk identitas mirip family, token mutasi untuk pembaruan, dan pelepasan (dispose) siklus hidup yang dapat diprediksi.
Tanpa Pembuatan Kode
Provider mirip family, override, dan injeksi dependensi dimodelkan dengan subclass + args + Scope, tanpa pembuatan kode (code generation).
Model Asinkron Terpadu
Satu AsyncProvider menangani Future dan Stream, dengan pembatalan ketat pada rebuild, invalidate, refresh, dan dispose.
Konkurensi Bawaan
Panggilan mutasi mendukung mode concurrent, queue, restart, dan dropLatest via ref.invoke(provider.method()).
Alur Pembelajaran yang Direkomendasikan
Bungkus aplikasi Anda dengan ProviderScope, definisikan kelas Provider/AsyncProvider, dan jalankan pembaruan status melalui ref.invoke dengan konkurensi eksplisit.
Instalasi
flutter pub add miniriverpod
Mutasi + Invoke
class UserProvider extends AsyncProvider<User?> {
UserProvider() : super.args(null);
late final renameMut = mutation<void>(#rename);
Call<void, AsyncValue<User?>> rename(String name) => mutate(
renameMut,
(ref) async {
final api = ref.watch(apiProvider);
await api.rename(name);
ref.state = AsyncData(await api.me());
},
concurrency: Concurrency.restart,
);
}
// UI
await ref.invoke(userProvider.rename('Alice'));
Compatibility Note
miniriverpod sengaja menjaga agar Provider + AsyncProvider + WidgetRef tetap dekat dengan Riverpod, tetapi mengganti jalur padat codegen dengan subclass + args, injeksi berbasis Scope, dan panggilan mutasi eksplisit.
Sebelumnya
Open SourceBerikutnya
Instalasi