了解mvc mvp mvvm三种模式

MVC模式
了解mvc mvp mvvm三种模式
Model: 数据模型层 dao层
View:视图层
Controller:控制器 service

controller的作用:就是将model层的数据在view层进行显示
注意:mvc模式所有的通信都是单向的

mvc的通信方式如下:
1.View 传送指令到 Controller
2.Controller 完成业务逻辑后,要求 Model 改变状态
3.Model 将新的数据发送到 View,用户得到反馈

mvp模式
了解mvc mvp mvvm三种模式
mvp模式将controller改成了presenter,同时也改变了通信方向

1:各部分之间的通信,都是双向的。
2:View 与 Model 不发生联系,都通过 Presenter 传递。
3:View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。

MVVM模式
了解mvc mvp mvvm三种模式
基本和mvp模式一致
唯一的区别是mvvm采用了双向绑定。

问题:model层数据变化的时候,为什么vm就可以知道数据发生变化了?
这是因为vue的双向数据绑定原理:vue在创建vm的时候,会将数据配置到实例中,然后通过Object.defineProperty方法为数据动态的添加getter与setter方法。当获取数据的时候,会触发对应的getter方法,当设置数据的时候,触发对应的setter方法。然后当setter方法触发完成的时候,内部会进一步触发watcher,当数据改变了,视图则更新操作完毕。