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的主要内容,如果未能解决你的问题,请参考以下文章

vue的MVVM

说说MVVM

Vue面试题整理

长路漫漫,唯剑作伴--MVVM

Vue的MVVM

MVVM和MVC的总结