MVC与MVVM模式的区别

一、MVC

Model(模型):用于处理应用程序数据逻辑,负责在数据库中存取数据。处理数据的crud

View(视图):处理数据显示的部分。通常视图是依据模型数据创建的。

Controller(控制器):处理数据显示的部分,控制器负责从视图读取数据,控制用户输入,并将数据发送给模型。一般包括业务处理模块和router路由模块

二、 M VVM------视图模型双向绑定

Model:模型层:用于处理业务逻辑和与服务器端进行交互

View:视图层:用于将数据模型转化为UI展示出来,简单来说就是html页面

ViewModel:视图模型层:框架封装的核心,它负责将数据与视图关联起来

  • ModelView 并无直接关联,而是通过 ViewModel 来进行交互的(即双向数据绑定),
  • ModelViewModel 之间有着双向数据绑定的联系

三、区别

MVVM 与 MVC 最大的区别就是:

MVVM实现了View和Model的自动同步,当Model属性改变时,不用手动操作Dom元素去改变View的显示。而改变属性后,该属性对应View的显示会自动改变

四、延伸:

阐述一下你所理解的MVVM响应式原理

  • vue是采用数据劫持配合发布者-订阅者的模式 的方式,
    • 通过Object.defineProperty()来劫持各个属性的getter和setter
    • 在数据变动时,发布消息给依赖收集器(dep中的subs),去通知(notify)观察者,做出对应的回调函数,更新视图
  • MVVM作为绑定的入口,整合Observer,Compile和Watcher三者,
    • 通过Observer来监听model数据变化,
    • 通过Compile来解析编译模板指令,
    • 最终利用Watcher搭起Observer,Compile之间的通信桥路,
    • 达到数据变化Observer)=>视图更新视图交互变化=>数据model变更的双向绑定效果。

参考:https://juejin.cn/post/7110885291946147876

相关推荐
Cloud-Future9 小时前
Spring MVC 处理请求的流程
java·spring·mvc
optimistic_chen2 天前
【Java EE进阶 --- SpringBoot】Spring IoC
spring boot·后端·spring·java-ee·mvc·loc
wuk9982 天前
在Spring MVC中使用查询字符串与参数
java·spring·mvc
原来是好奇心3 天前
深入剖析Spring Boot中Spring MVC的请求处理流程
spring boot·spring·mvc
xkroy3 天前
创建Spring MVC和注解
学习·spring·mvc
期待のcode3 天前
SpringMVC的请求接收与结果响应
java·后端·spring·mvc
Pure03194 天前
Spring MVC BOOT 中体现的设计模式
spring·设计模式·mvc
The Sheep 20234 天前
.NetCore MVC
mvc·.netcore
YDS8294 天前
SpringMVC —— Spring集成web环境和SpringMVC快速入门
java·spring·mvc·springmvc
xkroy4 天前
Sping Web MVC入门
mvc