Ergonomi gaya Riverpod dengan tingkah laku runtime yang jelas.
miniriverpod mengekalkan Provider dan AsyncProvider agar terasa biasa, tetapi mengecilkan tingkah laku kepada API yang jelas: subclass + args untuk identiti seumpama family, token mutation untuk kemas kini, dan pelupusan kitaran hayat yang boleh dijangka.
Tanpa Penjanaan Kod
provider seumpama family, override, dan dependency injection dimodelkan dengan subclass + args + Scope, tanpa penjanaan kod.
Model Async Bersepadu
Satu AsyncProvider mengendalikan Future dan Stream, dengan pembatalan yang ketat semasa rebuild, invalidate, refresh, dan dispose.
Built-in Concurrency
Panggilan mutation menyokong concurrent, queue, restart, dan dropLatest melalui ref.invoke(provider.method()).
Aliran Permulaan Disyorkan
Ketahui cara membungkus aplikasi anda dengan ProviderScope, mentakrifkan kelas Provider/AsyncProvider, dan menjalankan kemas kini state melalui ref.invoke dengan konkruensi yang jelas.
Pemasangan
flutter pub add miniriverpod
Mutation + 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 secara sengaja kekal Provider + AsyncProvider + WidgetRef hampir dengan Riverpod, tetapi menggantikan laluan berat penjanaan kod dengan subclass + args, suntikan berasaskan Scope, dan panggilan mutation yang jelas.
Sebelum
Open SourceSeterusnya
Pemasangan