Εργονομία τύπου 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

lib/main.dart
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