MVVM
MVVM
Model
Model 是用来表示我们会对其进行处理的实际数据,而且其中不应该包含逻辑。
View
View 是直接与用户交互的,也不应该包含逻辑,只需要告诉它如何显示,并且在触发事件之后进行转发。
ViewModel
ViewModel 会跟踪 View 的事件,和Model 层传给它的数据。他会公开属性和方法,帮住View 保持最新的状态。
ViewController (iOS)
在 MVVM 中,并没有ViewController,但是在iOS 中你可以直接把ViewController理解成 View,当然你可以把它叫做 MVCVM ,不要在意这些细节。ViewController 监听事件的触发,然后通知ViewModel进行处理。
ViewModel 一些规则:
- ViewModel 不能直接调用 ViewController 的方法,所以这里有一个委托来处理这些事情。
- 状态变更之后,ViewModel 通过委托通知 ViewController 重新加载视图。
- ViewModel 只能在主线程调用委托方法。
- ViewModel 中暴露的属性必须是与ViewController 匹配的类型,这样可以避免属性类型的转换和解包操作
ViewController 也应该遵守几个规则
- ViewController 不能被ViewModel 直接调用,而是通过协议中隐式通知。
- reloadViews 更新视图的方法 可以在任何地方调用多次。
相关推荐
姜海强 2020-08-01
chenjinlong 2020-06-10
conganguo 2020-06-09
88473166 2020-05-14
89427412 2020-05-06
conganguo 2020-05-06
yw00yw 2020-05-04
conganguo 2020-04-25
86523296 2020-04-22
89427412 2020-04-22
yw00yw 2020-04-20
86523296 2020-04-11
yw00yw 2020-04-11
yw00yw 2020-04-09
howema 2020-02-21
闲来也无事 2020-02-19
codercheng 2020-02-15
檀木雨林 2020-02-15
89427412 2020-02-13