ភាពងាយស្រួលបែប Riverpod ជាមួយអាកប្បកិរិយា runtime ច្បាស់លាស់។
miniriverpod រក្សា Provider និង AsyncProvider ឱ្យស្គាល់ងាយ ប៉ុន្តែបង្រួមអាកប្បកិរិយាទៅជា API ច្បាស់លាស់៖ subclass + args សម្រាប់អត្តសញ្ញាណបែប family, mutation tokens សម្រាប់ការអាប់ដេត និង lifecycle disposal ដែលអាចទស្សន៍ទាយបាន។
គ្មានការបង្កើតកូដ
provider បែប family, overrides និង dependency injection ត្រូវបានបង្កើតគំរូដោយ subclass + args + Scope ដោយគ្មាន code generation។
ម៉ូឌែល async រួមបញ្ចូល
AsyncProvider តែមួយគ្រប់គ្រង Future និង Stream ជាមួយនឹងការលុបចោលយ៉ាងតឹងរឹងនៅពេល rebuild, invalidate, refresh និង dispose។
Built-in Concurrency
ការហៅ mutation គាំទ្រ concurrent, queue, restart និង dropLatest តាមរយៈ ref.invoke(provider.method())។
លំហូរចាប់ផ្តើមដែលណែនាំ
រុំព័ទ្ធកម្មវិធីរបស់អ្នកដោយ ProviderScope, កំណត់ class Provider/AsyncProvider ហើយរត់ការអាប់ដេតស្ថានភាពតាម ref.invoke ជាមួយ concurrency ច្បាស់លាស់។
ដំឡើង
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, ការចាក់តាម Scope និងការហៅ mutation ច្បាស់លាស់។
មុន
Open Sourceបន្ទាប់
ការដំឡើង