MVC与MVVM模式的区别

一、MVC

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

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

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

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

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

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

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

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

三、区别

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

相关推荐
步行cgn18 小时前
Spring MVC POST 请求乱码:原因与完整解决方案
java·spring·mvc
步行cgn1 天前
HTTP 请求协议详解
spring·mvc
MoRanzhi12032 天前
第3篇 · 使用 PyQt5 实现 2048 桌面版游戏:MVC 架构与撤销和重做
python·mvc·pyqt5·桌面应用开发·gui开发·2048游戏·撤销与重做
CoderYanger2 天前
Java EE 进阶:4.Spring Web MVC 入门(第一弹)
java·开发语言·前端·spring·面试·java-ee·mvc
CarIise4 天前
Spring MVC 请求参数绑定与常用注解2
java·spring·mvc
CarIise4 天前
Spring MVC 请求参数绑定与常用注解
java·spring·mvc
萧瑟余晖10 天前
Spring MVC文件上传SSE与WebSocket详解
websocket·spring·mvc
乌暮11 天前
# Spring 入门与 Spring MVC 实战指南:从零理解 IoC 到 RESTful 图书管理
java·开发语言·后端·学习·spring·mvc·restful
萧瑟余晖11 天前
Spring MVC拦截器异常处理与跨域详解
java·spring·mvc
弈栈录19 天前
Spring MVC 请求处理流程与核心源码解析
后端·架构·mvc