mvvm和mvc的区别

157 阅读1分钟

概括 Vue内部通过Object.dedineProperty方法属性拦截的方式,把data对象里面每个数据的读写转化成getter/setter当数据变化时通知视图更新。

一.什么是MVVM数据双向绑定,它跟MVC有什么区别?

最大的区别就是它实现了View和Model的自动同步

先简单介绍MVC的优点:

1.耦合性低(运用mvc的应用程序的三个部件是相互独立的,改变其中一个不会影响其他两个) 2.重用性高(多个视图可以使用同一个模型) 3.生命周期成本低 4.部署快,可维护性高

MVC的缺点:

1.不适合小项目开发 2.视图与控制器联系过于紧密,妨碍了他们独立重用

二.什么是MVVM视图模型双向绑定,谈谈你对MVVM的理解

MVVM由三部分构成分别是:

Model 代表数据模型,数据和业务逻辑都在Model层中定义

View 代表UI视图,负责数据的展示

ViewModel 是一个对象 负责监听Model中数据的改变并控制View视图更新

MVVM优点

1.低耦合 View变化Model可以不变 当Model变化View也可以不变

2.可重用性

3.独立开发 不需要一直操作dom

总结:就是数据变化->视图更新 视图变化-数据变更的双向绑定效果

可以去查一下下面三者是如何实现的:

Observer(数据的观察者) Compile(依赖管理) Watcher(订阅者)