স্পষ্ট runtime আচরণসহ Riverpod-ধাঁচের ergonomics।
miniriverpod-এর Provider এবং AsyncProvider পরিচিত রাখে, কিন্তু আচরণকে স্পষ্ট API-তে সীমাবদ্ধ করে: family-এর মতো পরিচয়ের জন্য subclass + args, আপডেটের জন্য mutation token, এবং অনুমেয় lifecycle disposal।
কোনো Code Generation নয়
family-এর মতো provider, override, এবং dependency injection subclass + args + Scope দিয়ে মডেল করা হয়, code generation ছাড়াই।
একীভূত Async Model
একটি AsyncProvider Future ও Stream দুটোই সামলায়, rebuild, invalidate, refresh, এবং dispose-এর সময় কঠোর cancellation সহ।
Built-in Concurrency
Mutation call গুলি ref.invoke(provider.method()) এর মাধ্যমে concurrent, queue, restart, এবং dropLatest সমর্থন করে।
প্রস্তাবিত শুরু করার ধাপ
ProviderScope দিয়ে আপনার app ঘিরে রাখুন, Provider/AsyncProvider class নির্ধারণ করুন, এবং স্পষ্ট concurrency সহ ref.invoke-এর মাধ্যমে state update চালান।
ইনস্টল করুন
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'));
সামঞ্জস্যতা নোট
miniriverpod ইচ্ছাকৃতভাবে থাকে Provider + AsyncProvider + WidgetRef Riverpod-এর কাছাকাছি, তবে codegen-heavy পথগুলির বদলে subclass + args, Scope-ভিত্তিক injection, এবং স্পষ্ট mutation call ব্যবহার করে।
পূর্ববর্তী
Open Sourceপরবর্তী
ইনস্টলেশন