ಸ್ಪಷ್ಟ runtime ವರ್ತನೆಯೊಂದಿಗೆ Riverpod-ಶೈಲಿಯ ಅನುಭವ.
miniriverpod, Provider ಮತ್ತು AsyncProvider ಅನ್ನು ಪರಿಚಿತವಾಗಿಯೇ ಇಡುತ್ತದೆ, ಆದರೆ ವರ್ತನೆಯನ್ನು ಸ್ಪಷ್ಟ API ಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ: ಕುಟುಂಬದಂತಿರುವ ಗುರುತಿಗಾಗಿ subclass + args, updatesಗಾಗಿ mutation tokens, ಮತ್ತು ಊಹಿಸಬಹುದಾದ lifecycle disposal.
ಕೋಡ್ ಜನರೇಷನ್ ಇಲ್ಲ
family-like providers, overrides, ಮತ್ತು dependency injection ಅನ್ನು subclass + args + Scope ಮೂಲಕ, code generation ಇಲ್ಲದೆ ರೂಪಿಸಲಾಗಿದೆ.
ಏಕೀಕೃತ ಅಸಿಂಕ್ ಮಾದರಿ
ಒಂದೇ AsyncProvider Future ಮತ್ತು Stream ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, rebuild, invalidate, refresh, ಮತ್ತು dispose ಸಂದರ್ಭದಲ್ಲಿ ಕಠಿಣ cancellation ಜೊತೆಗೆ.
ಅಂತರ್ನಿರ್ಮಿತ concurrency
Mutation ಕರೆಗಳು ref.invoke(provider.method()) ಮೂಲಕ concurrent, queue, restart, ಮತ್ತು dropLatest ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ.
ಶಿಫಾರಸು ಮಾಡಿದ ಆರಂಭಿಕ ಪಥ
ನಿಮ್ಮ ಆಪ್ ಅನ್ನು ProviderScope ಮೂಲಕ ಸುತ್ತುವರಿಸಿ, Provider/AsyncProvider ಕ್ಲಾಸ್ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ, ಮತ್ತು ಸ್ಪಷ್ಟ concurrency ಜೊತೆಗೆ ref.invoke ಮೂಲಕ state updates ನಡೆಸಿರಿ.
ಇನ್ಸ್ಟಾಲೇಶನ್
flutter pub add miniriverpod
ಮ್ಯೂಟೇಶನ್ + ಕರೆ
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,
);
}
// ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್
await ref.invoke(userProvider.rename('Alice'));
ಹೊಂದಾಣಿಕೆ ಟಿಪ್ಪಣಿ
miniriverpod ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ Provider + AsyncProvider + WidgetRef Riverpodಗೆ ಸಮೀಪದಲ್ಲೇ ಇರುತ್ತದೆ, ಆದರೆ codegen-ಭಾರಿತ ಮಾರ್ಗಗಳನ್ನು subclass + args, Scope-ಆಧಾರಿತ injection, ಮತ್ತು ಸ್ಪಷ್ಟ mutation ಕರೆಯೊಂದಿಗೆ ಬದಲಿಸುತ್ತದೆ.
ಹಿಂದೆ
ಮುಕ್ತ ಮೂಲಮುಂದೆ
ಇನ್ಸ್ಟಾಲೇಶನ್