MVP 和 MVVM

对mvp 和 mvvm模式的一点理解

最常见的客户端架构有三种:

MVC: Model-View-Controller

MVP: Model-View-Presenter

MVVM: Model-View-ViewModel

1.在 MVC 里面,Model 是数据模型;View 是视图或者说就是我们的软件界面需要去展示的东西;Controller 是用来控制Model的读取、存储,以及如何在 View上 展示数据,更新数据的逻辑控制器。

2.MVP是单词Model View Presenter的首字母的缩写,分别表示数据层、视图层、发布层,它是MVC架构的一种演变。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controlle。


下面通过jquery的todolist 代码 演示这种模式


在这段代码中 M 层 没有展示 (主要用了做ajax的发送),主要用了P成和V层。

P层可以调用M层,也可以处理数据操作dom,更新V层。

当按钮提交的时候,v层视图改变,调用p层的逻辑,p层要么调用模型层发送ajax,要么直接操作dom,

mvp中的p是mvp中最核心的一层,如果有jquery写代码,将会有大量的代码在控制层,而且也将会有大量的代码在操作dom,

3.

以vue的todolist代码说明


如果利用vue来开发项目的话,我们只需要关注m层m-数据,和v-展示,不需要关注vm成,这个是vue内置的数据处理功能,利用了es5的Object.defineProperty()这种数据拦截机制和虚拟dom机制来帮助我们处理中间转化过程的,当视图改变了,vue会自动把调用m层的事件,m层更新了数据,又会把更新后的数据映射到v中,

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容