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.
Konkruensi Terbina
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'));
Nota Keserasian
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
Sumber TerbukaSeterusnya
Pemasangan