Εργονομία τύπου Riverpod με ρητή συμπεριφορά κατά την εκτέλεση.
Το miniriverpod διατηρεί το Provider και το AsyncProvider οικεία, αλλά περιορίζει τη συμπεριφορά σε ρητά API: subclass + args για ταυτότητα τύπου οικογένειας, mutation tokens για ενημερώσεις και προβλέψιμη απόρριψη του κύκλου ζωής.
Χωρίς παραγωγή κώδικα
Providers τύπου οικογένειας, overrides και dependency injection μοντελοποιούνται με subclass + args + Scope, χωρίς παραγωγή κώδικα.
Ενοποιημένο ασύγχρονο μοντέλο
Ένα μοναδικό AsyncProvider χειρίζεται Future και Stream, με αυστηρή ακύρωση σε rebuild, invalidate, refresh και dispose.
Built-in Concurrency
Οι κλήσεις μεταβολών υποστηρίζουν 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, αλλά αντικαθιστά τις διαδρομές που βασίζονται έντονα σε codegen με subclass + args, injection βασισμένο σε Scope και ρητές κλήσεις μεταβολών.
Προηγούμενο
Open SourceΕπόμενο
Εγκατάσταση