התקינו את miniriverpod בתוך דקות.
הגדירו מגבלות SDK, הוסיפו את החבילה, ואמתו ש-ProviderScope + WidgetRef.watch מחוברים כראוי.
דרישות
השתמשו באותן מגבלות כמו החבילה כדי להימנע מחוסר התאמה בין ה-analyzer לבין זמן הריצה.
Dart SDK
>=3.10.0 <4.0.0
Flutter
טיפ
אם האפליקציה שלכם נעולה מתחת ל-Dart 3.10, העלו קודם את מגבלות ה-SDK, ואז הריצו flutter pub get.
התקנה
העדיפו התקנה דרך CLI, ואז שמרו את הגרסה מסונכרנת עם ה-changelog של החבילה.
CLI
pubspec.yaml
# הוספה לתלויות
dependencies:
miniriverpod: ^0.0.2
צעדים ראשונים
עטפו את האפליקציה שלכם ב-ProviderScope, הגדירו Provider, ושרטטו מצב מתוך ConsumerWidget.
import 'package:flutter/widgets.dart';
import 'package:miniriverpod/miniriverpod.dart';
final counterProvider = Provider<int>((ref) => 0);
void main() {
runApp(const ProviderScope(child: CounterApp()));
}
class CounterApp extends ConsumerWidget {
const CounterApp({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
final count = ref.watch(counterProvider);
return Directionality(
textDirection: TextDirection.ltr,
child: Center(child: Text('$count')),
);
}
}
השתמשו ב-Provider((ref) => ...) עבור ערכים סינכרוניים.
השתמשו ב-AsyncProvider<T>((ref) async => ...) עבור Future וב- ref.emit(stream) עבור Stream.
עברו ל- ref.invoke(provider.method()) כאשר אתם מיישמים mutations.
השלבים הבאים
מושגי ליבה
הבינו זהות של providers מבוססת ארגומנטים, הזרקת Scope, ובחירות עיצוב ללא codegen.
פתיחת מושגי הליבהProviders וקריאות
למדו את התנהגות watch/read/listen ואת דפוסי הרענון של AsyncProvider.
פתיחת Providers