ארגונומיה בסגנון Riverpod עם התנהגות מפורשת בזמן ריצה.
miniriverpod שומר על Provider ו‑AsyncProvider מוכרים, אך מצמצם את ההתנהגות ל‑API מפורש: subclass + args לזיהוי בסגנון family, אסימוני mutation לעדכונים, ופינוי מחזור חיים צפוי.
ללא יצירת קוד
Providers בסגנון family, overrides ו‑dependency injection ממופים באמצעות subclass + args + Scope, ללא יצירת קוד.
מודל Async אחיד
AsyncProvider יחיד מטפל ב‑Future וב‑Stream, עם ביטול קפדני בזמן rebuild, invalidate, refresh ו‑dispose.
Built-in Concurrency
קריאות mutation תומכות ב‑concurrent, queue, restart ו‑dropLatest באמצעות ref.invoke(provider.method()).
מסלול כניסה מומלץ
עטפו את האפליקציה שלכם ב‑ProviderScope, הגדירו מחלקות Provider/AsyncProvider, והפעילו עדכוני מצב דרך ref.invoke עם קונקרנטיות מפורשת.
התקנה
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, אך מחליף נתיבים כבדי יצירת קוד ב‑subclass + args, הזרקה מבוססת Scope, וקריאות mutation מפורשות.
הקודם
Open Sourceהבא
התקנה