riverpod_builder 0.1.1 riverpod_builder: ^0.1.1 copied to clipboard
easy to use riverpod state management.
Purpose #
Easy to use awesome package Riverpod for some design pattern.
Features #
View (builder) #
@override
Widget build(BuildContext context) {
// wrap this buider
return RiverpodBuilder(
provider: ViewProviders.firstViewModelProvider,
builder: (context, ref, vm, state, reader) {
return Scaffold(
appBar: AppBar(
title: const Text('First View'),
automaticallyImplyLeading: false,
)
...
property #
context
means build contextref
means WidgetRefvm
ref.watch(provider.notifier);state
ref.watch(provider);reader
ref.read(provider.notifier);
View Model #
class FirstViewModel extends BaseViewModel<FirstViewState> {
@override
get instanse => const FirstViewState();
int get count => state.count;
// listen another provider
SecondViewModel get secondVM =>
widgetRef.read(secondViewModelProvider.notifier);
@override
void onInit() async{
// Asynchronous processing is also possible .
await Future.delayed(const Duration(seconds: 1));
super.onInit();
}
void addCount() {
state = state.copyWith(count: state.count + 1);
}
void showNextView() {
// has context(Build Context)
// no arguments need to be passed.
Navigator.of(context).pushNamed("second_view");
}
...
property #
context
means build contextref
means WidgetRefwidgetRef
means PrividerRefstate
this state;onInit
(function) triger when this class init;onDispose
(function) triger when this class close;
#
Writing Documents more detail...