جست‌وجوی سریع API برای کار روزمره.

این صفحه کلاس‌ها و متدهای پرکاربرد miniriverpod_core.dart و miniriverpod_flutter.dart را خلاصه می‌کند.

انواع اصلی

Primitiveهای اصلی state و provider.

AsyncValue<T>

AsyncLoading / AsyncData / AsyncError

Provider<T>

provider هم‌زمان با autoDispose اختیاری

AsyncProvider<T>

provider ناهم‌زمان با سلکتور .future

نکتهٔ خواندن

AsyncValue متد when را ندارد؛ از pattern matching با switch یا بررسی‌های is استفاده کنید.

متدهای Ref و ProviderContainer

متدهای عملی رایج برای تازه‌سازی، بی‌اعتبارسازی، چرخهٔ عمر و اجرای mutation.

توالی رایج

نقشهٔ متدها

read / watch / listen                 : خواندن و اشتراک در providerها.
invalidate / refresh / refreshValue    : محاسبهٔ دوبارهٔ وضعیت.
onDispose / keepAlive / emit           : چرخهٔ عمر و اتصال به استریم.
mutation / mutate / invoke             : عملیات نوشتنِ ردیابی‌شده.
scope / overrideWithValue              : بازنویسی‌های DI و تست.

نمای کلی API Flutter

نقاط ورود ProviderScope و WidgetRef در کد برنامه استفاده می‌شوند.

// محدوده
ProviderScope(
  child: const App(),
);

// ConsumerWidget
class Header extends ConsumerWidget {
  const Header({super.key});

  @override
  Widget build(BuildContext context, WidgetRef ref) {
    final user = ref.watch(currentUser);
    return Text('$user');
  }
}

// اجرای mutation
await ref.invoke(userProvider.rename('Alice'));
در ProviderScope(container: external) باید container.dispose() را به‌صورت دستی فراخوانی کنید.
UncontrolledProviderScope هرگز container تزریق‌شده را dispose نمی‌کند.
Consumer، ConsumerWidget و ConsumerStatefulWidget همگی پشتیبانی می‌شوند.

گام‌های بعدی

Providerها

به استفادهٔ عملی از Provider، AsyncProvider و APIهای read برگردید.

باز کردن Providerها

Mutationها

جریان‌های نوشتن صریح را با کنترل هم‌زمانی پیاده‌سازی کنید.

باز کردن Mutationها