સ્પષ્ટ runtime વર્તન સાથે Riverpod-શૈલીની ergonomics.

miniriverpod Provider અને AsyncProvider ને પરિચિત રાખે છે, પણ વર્તનને સ્પષ્ટ API સુધી મર્યાદિત કરે છે: family જેવી identity માટે subclass + args, અપડેટ માટે mutation tokens, અને આગોતરા lifecycle disposal.

Code Generation નથી

family જેવા providers, overrides, અને dependency injection ને subclass + args + Scope વડે model કરવામાં આવે છે, code generation વગર.

એકસમાન Async Model

એક AsyncProvider Future અને Stream બન્ને સંભાળે છે, rebuild, invalidate, refresh, અને dispose વખતે કડક cancellation સાથે.

Built-in Concurrency

Mutation calls ref.invoke(provider.method()) દ્વારા concurrent, queue, restart, અને dropLatest ને સપોર્ટ કરે છે.

ભલામણ કરેલ શરૂઆતનો પ્રવાહ

ProviderScope સાથે તમારા app ને wrap કરો, Provider/AsyncProvider classes define કરો, અને explicit concurrency સાથે ref.invoke મારફતે state updates ચલાવો.

ઇન્સ્ટોલ

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-heavy માર્ગોને subclass + args, Scope આધારિત injection, અને explicit mutation calls સાથે બદલે છે.