2020-02

作者: 一只不断前进的小蜗牛 | 来源:发表于2020-02-27 17:06 被阅读0次

今日我们来讲讲MVVM

这属于架构专题的知识了,MVC众所周知,苹果推荐使用的设计模式。但我们会发现随着需求的增加,视图控制器变得越来越臃肿。因此MVVM应运而生

什么是MVVM?

MVVM展开是Model-View-ViewModel 

MVVM是基于MVC,让我们回忆下MVC的经典模式

控制器充当视图和模型之间的媒介与协调者,视图不引用模型。模型与控制器之间用KVO传递消息,视图与控制器之间用用户的交互传递消息

虽然视图和控制器是不同的技术,但项目中我们经常将视图与控制器连接在一起,换句话说,为什么我们不正规他们之间的连接

由此,在MVVM中,视图和视图控制器正式连接在一起,我们将其视为一体。视图没有引用模型,控制器也没有,相反是他们引用模型。

在典型的MVC中,控制器很臃肿,这是因为放了许多可以迁移掉的逻辑(即presentation logic),即那些将model数据转换成View可以呈现的东西,比如:把给字符串加上富文本属性,把NSDate数据格式转为一个NSString

所以,我们在model与(View/Controller)之间插入一个ViewModel,将presentation logic放到ViewModel中

我们将用于在视图控制器中呈现内容的所有逻辑抽象为一个视图模型,该模型与实际的UI无关。即在ViewModel中不要导入 <#import UIKit>

注意重点:MVVM 配合一个绑定机制效果最好,因为当Model是可变时,当ViewModel背后的Model数据变化,ViewModel的属性可以及时更新其属性,进而更新View的显示

相关文章

  • 【防疫科普】何谓免疫力?如何提高抗病毒的免疫力?

    https://kepu.gmw.cn/2020-02/22/content_33579624.htm 作者:黄波...

  • 2020-02

    2.22 坐在电脑前,学习吧。 必须要完成的事情 不要等到时间流逝 ,慌忙的太难看。 明天tip:早上关掉闹钟后千...

  • 2020-02

    今日我们来讲讲MVVM 这属于架构专题的知识了,MVC众所周知,苹果推荐使用的设计模式。但我们会发现随着需求的增加...

  • 2020-02

    Q1: ['1', '2', '3'].map(parseInt) what & why ? map的第一个函数默...

  • 2020-02—07

    安守幸福 疫情当前,不敢出门。好在儿子、女儿都在家中,安心享受天伦之乐。明天就是元宵节了,自女儿参加工作之...

  • 【锦】有书听书2020-03《哪有没时间这回事》

    图文/锦璱(图片设计) 上一篇:【锦】有书听书2020-02《少有人走的路》 《哪有没时间这回事:碎片化时代的正确...

  • 2020-02-02

    2020-02—01 姓名 :李宏清(单位)扬州市方圆建筑工程有限公司 哈尔滨363期反省二组 【日精进打卡第66...

  • 2020-02月乡村

    今年计划在家呆四天时间,因为疫情,车停了,最后一直在家呆着到2月22号,转到郑州坐飞机来到广州。 自己回家的时候是...

  • 2020-02 复盘

    2020.02.29 小雪 今年竟然在家里待了这么久,总感觉是过了一个寒假。一个多月,并且还会持续下去。尽管基本...

  • 2020-02月总结

    这个月一直在家,给自己做了一个月的饭。买了东西很久没送过来,不知道什么时候才能送到的水果 虽然是在家吃饭,还是持续...

网友评论

      本文标题:2020-02

      本文链接:https://www.haomeiwen.com/subject/llcvchtx.html