vmobject 1.0.0 vmobject: ^1.0.0 copied to clipboard
Base classes used to build Flutter project follow pattern MVVM
Base classes used to build Flutter project follow pattern MVVM
Classes #
ObserverWidget #
A widget auto rebuild every time the observable changed
//define observable in viewmodel
final count = Observable(0);
//used in build context
ObserverWidget(
observable: count,
builder: (context, int value) => Text('$value')
)
Dependency on library obsobject
ViewModel #
Base class for viewmodel layer
class HomeModel extends ViewModel {
//somethings...
}
In somewhere, you can use ViewModel.of
to get created objects already
final home = ViewModel.of<HomeModel>();
Lifecycle events call below functions, you can overwrite these functions to handle something (subscribe, create computed objects, fetch data,...)
activate
: called before render widgetdispose
: called after widget removed
ViewWidget #
Base class for view layer. There are 2 methods should override initModel
and builder
By default, the viewmodel for view is initialized only once and cached. You can override property cacheModel
to false
to ignore use cache viewmodel (eg: login view).
class HomeView extends ViewWidget<HomeModel> {
@override
HomeModel initModel() => HomeModel();
@override
Widget builder(BuildContext context, HomeModel model) {
//return widget
}
}