Εργονομία τύπου Riverpod με ρητή συμπεριφορά κατά την εκτέλεση.
Το miniriverpod διατηρεί το Provider και το AsyncProvider οικεία, αλλά περιορίζει τη συμπεριφορά σε ρητά API: subclass + args για ταυτότητα τύπου οικογένειας, mutation tokens για ενημερώσεις και προβλέψιμη απόρριψη του κύκλου ζωής.
Χωρίς παραγωγή κώδικα
Providers τύπου οικογένειας, overrides και dependency injection μοντελοποιούνται με subclass + args + Scope, χωρίς παραγωγή κώδικα.
Ενοποιημένο ασύγχρονο μοντέλο
Ένα μοναδικό AsyncProvider χειρίζεται Future και Stream, με αυστηρή ακύρωση σε rebuild, invalidate, refresh και dispose.
Ενσωματωμένη ταυτόχρονη εκτέλεση
Οι κλήσεις μεταβολών υποστηρίζουν concurrent, queue, restart και dropLatest μέσω του ref.invoke(provider.method()).
Συνιστώμενη ροή εισαγωγής
Τυλίξτε την εφαρμογή σας με ProviderScope, ορίστε κλάσεις Provider/AsyncProvider και εκτελέστε ενημερώσεις κατάστασης μέσω του ref.invoke με ρητή ταυτόχρονη εκτέλεση.
Εγκατάσταση
flutter pub add miniriverpod
Μεταβολή + 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,
);
}
// Διεπαφή χρήστη
await ref.invoke(userProvider.rename('Alice'));
Σημείωση συμβατότητας
Το miniriverpod σκόπιμα παραμένει Provider + AsyncProvider + WidgetRef κοντά στο Riverpod, αλλά αντικαθιστά τις διαδρομές που βασίζονται έντονα σε codegen με subclass + args, injection βασισμένο σε Scope και ρητές κλήσεις μεταβολών.
Προηγούμενο
Ανοιχτός κώδικαςΕπόμενο
Εγκατάσταση