Base Mvvm | Coderz Product

base_mvvm

Last updated:

0 purchases

base_mvvm Image
base_mvvm Images

Free

Languages

Categories

Add to Cart

Description:

base mvvm

flutter_mvvm #
A new Flutter package.
Getting Started #
dependencies:
base_mvvm: ^2.0.0
view
class TestPageView extends BaseView<TestViewModel> {
@override
Widget buildView(BuildContext context) {
return Container(
child: Stack(
children: <Widget>[
Consumer(
builder: (context, TestViewModel testViewModel, _) => Stack(
children: <Widget>[
Center(
child: Text('${testViewModel.num}',style: TextStyle(fontSize: 16),),
),
Align(
alignment: Alignment.bottomCenter,
child: GestureDetector(
child: Text('click to change',style: TextStyle(fontSize: 16),),
onTap: () {
testViewModel.getNum();
},
),
)
],
)),
],
));
}

@override
void viewInit(BuildContext context) {}

@override
void viewReady(BuildContext context) {
viewModel.getNum();
}

@override
TestViewModel createViewModel() {
return TestViewModel();
}

@override
Widget createLoadingPageView() {

return null;
}

@override
bool canLoading() {
return false;
}
}
copied to clipboard
model
class TestModel extends BaseModel {

int num = 0;

Observable<int> getNumber() {
num += 1;
return Observable.just(num).delay(Duration(seconds: 1));
}
}
copied to clipboard
viewmodel
class TestViewModel extends BaseViewModel {

int _num;
TestModel _testModel;

TestViewModel() {
_testModel = TestModel();
}

void getNum() {
excute(_testModel.getNumber(), (data)=> {
setNum(data)
});
}

setNum(int data) {
_num = data;
notifyListeners();
}

int get num => _num;
}
copied to clipboard
网络请求采用的rxdart+jsonseraziable
在model里可以直接
Observable<int> netWork() {
return post('path',param);
}
copied to clipboard
记住请在viewmodel里使用excute方法传入Observable 防止内存泄漏

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.