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 一些规则:

  1. ViewModel 不能直接调用 ViewController 的方法,所以这里有一个委托来处理这些事情。
  2. 状态变更之后,ViewModel 通过委托通知 ViewController 重新加载视图。
  3. ViewModel 只能在主线程调用委托方法。
  4. ViewModel 中暴露的属性必须是与ViewController 匹配的类型,这样可以避免属性类型的转换和解包操作

ViewController 也应该遵守几个规则

  1. ViewController 不能被ViewModel 直接调用,而是通过协议中隐式通知。
  2. reloadViews 更新视图的方法 可以在任何地方调用多次。

以上是关于MVVM的主要内容,如果未能解决你的问题,请参考以下文章