واضح runtime برتاؤ کے ساتھ Riverpod طرز کی ergonomics۔
miniriverpod، Provider اور AsyncProvider کو مانوس رکھتا ہے، مگر برتاؤ کو واضح APIs تک محدود کرتا ہے: family-like identity کے لیے subclass + args، updates کے لیے mutation tokens، اور متوقع lifecycle disposal۔
کوئی code generation نہیں
family-like providers، overrides، اور dependency injection کو subclass + args + Scope کے ذریعے model کیا جاتا ہے، بغیر code generation کے۔
یکساں async ماڈل
ایک ہی AsyncProvider Future اور Stream دونوں کو سنبھالتا ہے، اور rebuild، invalidate، refresh، اور dispose پر سخت cancellation دیتا ہے۔
Built-in Concurrency
Mutation calls concurrent، queue، restart، اور dropLatest کو ref.invoke(provider.method()) کے ذریعے سپورٹ کرتی ہیں۔
تجویز کردہ آغازی بہاؤ
اپنی app کو ProviderScope کے ساتھ wrap کریں، Provider/AsyncProvider classes define کریں، اور ref.invoke کے ذریعے state updates کو واضح concurrency کے ساتھ چلائیں۔
انسٹال
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 جان بوجھ کر Provider + AsyncProvider + WidgetRef کو Riverpod کے قریب رکھتا ہے، مگر codegen-heavy راستوں کو subclass + args، Scope-based injection، اور واضح mutation calls سے بدل دیتا ہے۔
پچھلا
Open Sourceاگلا
تنصیب