码迷,mamicode.com
首页 > 其他好文 > 详细

MVVM

时间:2020-04-11 00:27:58      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:处理   reload   协议   转发   交互   表示   理解   更新   mod   

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

标签:处理   reload   协议   转发   交互   表示   理解   更新   mod   

原文地址:https://www.cnblogs.com/liuxiaokun/p/12677032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!