MVVM
Posted liuxiaokun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 更新视图的方法 可以在任何地方调用多次。
以上是关于MVVM的主要内容,如果未能解决你的问题,请参考以下文章