MVVM模式的使用

最近项目都换成了MVVM的模式,这里说一下整的思路。

MVVM模式的使用这个就是MVVM,把控制器剥离出来,减轻控制器的负担,简化代码提高代码质量,是这种模式的主要作用。

流程:

1.一个模块创建一个ViewModel,viewModel贯穿VC和View,是他们之间沟通的桥梁。

MVVM模式的使用

这是ViewModel的.h,是创建信号的,信号分两种,Command一般用于接口调用,Subject用于事件传递。在.m里面写你接口的解析,参数之类的。

2.创建控制器,控制器要初始化你的ViewModel。

3.创建View视图,View里面要把基本上所有的操作都完成,除了非得用控制器的代码可以写在VC中,比如页面跳转,其他的都要写在View里面。像UITableView的代理和视图创建都写在view里面。

4.信号传递,例如:[self.viewModel.twpRefreshCommand execute:nil];这是调取刷新接口的信号,执行此操作,ViewModel里面的刷新的信号会再次调用一次,也就是刷新一次。

[self.twpOrderToBuyClickSubject sendNext:self.detailModel];这个是事件传递的信号,发出这个信号,需要在另一个地方接受事件,像代理一样和Block一样,好处是不用写很多代码,View和VC都可以互相传递,(功能类型通知,但不用担心没有移除通知)。可以传递参数,sendNext:(这里面写参数哦)。

//接受信号
    [self.viewModel.twpOrderToBuyClickSubject subscribeNext:^(TWCOrderDetailModel *detailModel) {
        @strongify(self);
        这里面写事件的处理
       
    }];

注意:VC和view要共用一个ViewModel,viewModel在VC中创建,传递到view中。后续继续更新。