什么是 MVVM?MVVM和 MVC 有什么区别?什么又是 MVP ?

news2024/12/23 20:34:10

目录标题

  • 一、什么是MVVM?
  • 二、MVC是什么?
  • 三、MVVM和MVC的区别?
  • 四、什么是MVP?

一、什么是MVVM?

MVVM是 Model-View-ViewModel的缩写,即模型-视图-视图模型。MVVM 是一种设计思想。

  • 模型(Model):代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。数据保存—存放着各种数据,有的是固定写死的,大多数是从后端返回的数据
  • 视图 (View):代表UI 组件,它负责将数据模型转化成UI 展现出来,用户界面,也就是DOM
  • 视图模型(View-Model):监听数据模型的改变和控制视图行为、处理用户交互,简单理解就是一个同步View 和Model的对象,连接Model和View。

MVVM的流程如下:
在这里插入图片描述

二、MVC是什么?

MVC 通过分离 Model、View 和 Controller 的方式来组织代码结构。其中 View 负责页面的显示逻辑,Model 负责存储页面的业务数据,以及对相应数据的操作。并且 View 和 Model 应用了观察者模式,当Model 层发生改变的时候它会通知有关 View 层更新页面。Controller 层是View 层和 Model 层的纽带,它主要负责用户与应用的响应操作,当用户与页面产生交与的时候,Controller 中的事件触发器就开始工作了,通过调用 Model 层,来完成对 Model 的修改然后 Model 层再去通知 View 层更新。

三、MVVM和MVC的区别?

  • 都是一种设计思想
  • MVC后台用的多,MVC是Model-view-Controller的简写,即模型-视图-控制器。
  • MVC的目的就是将M和V的代码分离
  • MVC是单向通信,也就是View和Model,必须通过controller来承上启下。
  • MVVM实现了View和Model的自动同步,当Model的属性改变时,不用再自己手动操作DOM元素,提高了页面渲染性能。

在这里插入图片描述

四、什么是MVP?

MVP 模式与 MVC 唯一不同的在于 Presenter 和 Controller。
在 MVC 模式中使用观察者模式来实现当 Model 层数据发生变化的时候,通知 View 层的更新。这样 View 层和 Model 层糖合在一起,当项目逻辑变得复杂的时候,可能会造成代码的混乱,并且可能会对代码的复用性造成一些问题。
MVP 的模式通过使用 Presenter 来实现对 View 层和 Model 层的解。MVC 中的Controller 只知道 Model 的接口,因此它没有办法控制 View 层的更新,MVP 模式中,View 层的接口暴露给了 Presenter 因此可以在 Presenter 中将 Model 的变化和 View 的变化绑定在-起,以此来实现 View 和 Model 的同步更新。这样就实现了对 View 和 Model 的解耦Presenter 还包含了其他的响应逻辑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/456150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PerformanceTest, monitoring command

PerformanceTest, monitoring command 1、数据库 #查看最大连接数 show variables like max_connections; #例如:查看mysql连接数 show status like Threads%; 说明: threads_cached //查看线程缓存内的线程的数量 threads_connected //查看当前打开的连接的数量(打开的…

【Linux】6、在 Linux 操作系统中安装软件

目录 一、yum 命令二、安装 wget 一、yum 命令 类似 Linux 中的应用商店 📃① yum 是 RPM 软件包管理器 ✏️ Red-Hat Package Manager 📃② yum 用于自动化安装、配置 Linux 软件(可自动解决依赖问题) 📃③ 语法&a…

面试2个月没有一个offer?阿里技术官的800页知识宝典打破你的僵局~

在经历了一波裁员浪潮后,大环境似乎有所好转,但对于面试者来说,面试愈发困难,现在面试官动不动就是底层原理,动不动就是源码分析,面试一定会抓你擅长的地方,一直问,问到你不会为止。…

MySQL之内置函数

目录 一 日期函数 主要实现的功能: 主要函数: 示例: 应用 二 字符串函数 主要实现的功能 1转换或者显示相关 2切割,插入,替换,连接,比较等功能性质的 3 其他 三 数学函数 1 运算 2 …

MySQL-运算符的使用解析

运算符的使用解析 1 运算符概述2 算数运算符3 比较运算符3.1 等于运算符&#xff08;&#xff09;3.2 安全等于运算符&#xff08;<>&#xff09;3.3 不等于运算符&#xff08;<> 或者 &#xff01;&#xff09;3.4 小于等于运算符&#xff08;<&#xff09;3.5…

Jmeter基础教程合集

环境搭建 1.安装java 8.0以上版本 2.下载jmeter并安装。安装参考网址&#xff1a;https://blog.csdn.net/wust_lh/article/details/86095924 3.打开JMeter中bin目录下面的jmeter.bat文件即可打开JMeter了&#xff0c;打开的时候会有两个窗口&#xff0c;Jmeter的命令窗口和Jme…

【数据结构】哈希表——闭散列 | 开散列(哈希桶)

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《数据结构与算法》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 哈希表 &#x1f3af;哈希&#x1f94a;直接定址法&#x1f94a;除留余数法&#x1f94a;哈…

CHAPTER 3: 《A FRAMEWORK FOR SYSTEM DESIGN INTERVIEWS》第3章 《面试系统设计框架》

CHAPTER 3: A FRAMEWORK FOR SYSTEM DESIGN INTERVIEWS 你刚刚获得了梦寐以求的理想公司的现场面试机会。招聘协调员给你发送了当天的日程安排。浏览列表&#xff0c;你会感觉很好直到你的目光落在这个面试环节——系统设计面试。 系统设计面试通常很吓人。它可以像“设计一个…

【Redis】缓存同步

【Redis】缓存同步 文章目录 【Redis】缓存同步1. 数据同步策略2. 异步通知策略3. Canal3.1 Canal客户端3.2 监听器 1. 数据同步策略 缓存数据同步的常见方式有三种&#xff1a; 设置有效期&#xff1a;给缓存设置有效期&#xff0c;到期后自动删除&#xff0c;再次查询时更新…

网络系统集成实验(四)| 系统集成路由器基本配置

目录 一、前言 二、实验目的 三、实验需求 四、实验步骤与现象 &#xff08;一&#xff09;静态路由 Step1&#xff1a;构建实验拓扑如下 Step2&#xff1a;IP地址配置如下 Step3&#xff1a;配置静态路由 Step4&#xff1a;验证 &#xff08;二&#xff09;NAT配置—…

OpenPCDet复现过程记录

0、前言 OpenPCDet项目之前我就复现过&#xff0c;一个很优秀的项目&#xff0c;这几天又需要用到这个项目&#xff0c;再次复现遇到了不少问题&#xff0c;特此记录复现的流程 1、环境准备 1.1、前置条件 以下是我安装的版本 CUDA 11.3CUDNN 8.2.1 CUDA和CUDNN安装可以参考…

Yolo v1 笔记

个人不太懂的点 1.损失函数的4与5项 【论文解读】Yolo三部曲解读——Yolov1 - 知乎 https://www.youtube.com/watch?vNkFENlEb4kM&t672s 训练阶段&#xff1a; C_i 预测值&#xff1a;由网络输出出来7*7*30中第一个bbox和第二个bbox的置信度confidence C_i^hat 标签值…

(六)大数据实战——hadoop集群实现免密登录和文件互传

前言 本节内容我们主要介绍一下hadoop集群服务器之间实现免密登录和文件互传的功能&#xff0c;这样更加方便我们使用hadoop服务器实现服务器之间的相互登录和文件的相互传输。集群之间的访问不在需要授权就可以实现相互访问。 正文 SSH免密登录 ①分别在hadoop101、hadoop1…

后台管理系统之登录方案记录

需求&#xff1a;根据当前环境的不同&#xff0c;请求不同的 BaseUrl 解决&#xff1a;在根目录中新建.env.development与.env.production连个文件&#xff0c;进行配置&#xff1a; # .env.production ENV production# base api VUE_APP_BASE_API /prod-api# .env.develop…

目标检测——YOLOv8(十四)

简介&#xff1a; YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本&#xff0c;目前支持图像分类、物体检测和实例分割任务。不过 ultralytics 并没有直接将开源库命名为 YOLOv8&#xff0c;而是直接使用 ultralytics 这个词&#xff0c;原…

nodejs+vue 学分置换管理系统

在大学四年参加了各类竞赛后&#xff0c;我发现参加各类比赛存在报名过程过于繁琐&#xff0c;评比过程不透明和易出错等问题&#xff0c;所以在定题时与老师商讨后确定设计和实现基于nodejs的高校竞赛信息发布系统&#xff0c;帮助老师发布竞赛内容&#xff0c;便于同学们线上…

24考研数学每日一题(带解析)2023年12月1日-2023年12月31日

title: 24考研数学每日一题Latex版&#xff08;带解析&#xff09; date: 2023-01-28 11:49:26 plugins: mathjax tags:学习考研 categories:考研数学 题目来源于武老师的每日一题&#xff0c;答案是自己做的&#xff0c;不太严谨&#xff0c;仅供参考 2022年12月1日 知识点…

区块浏览器Tokenview受邀参加2023香港Web3嘉年华,用科技与善良打造全球区块浏览器Web3生态

区块浏览器Tokenview受邀参加2023香港Web3嘉年华,用科技与善良打造全球区块浏览器Web3生态 4月12-15日&#xff0c;由万向区块链实验室、HashKey Group 联合举办、W3ME 承办的「2023 香港 Web3 嘉年华」在香港会议展览中心举行。该活动被称为香港有史以来规模最大的加密领域活…

无人机飞行控制实验平台

无人机在研制过程中需要不断地进行飞行测试&#xff0c;而测试的过程不是万无一失的&#xff0c;飞行过程中发生任何错误都有可能会导致无人机的损毁或破坏&#xff0c;更严重地甚至会造成外界伤害。 基于此我们推出了无人机的三旋转自由度 (3-DOF) 飞行平台测试系统&#xff…

学成在线笔记+踩坑(4)——【媒资管理模块】上传图片,Nacos+Gateway+MinIO

导航&#xff1a; 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 1. 媒资管理模块简介 1.1 模块介绍 1.2 业务流程 1.2.1 上传课程图片 1.2.2 上传视频 1.2.3 处理视频 1.2.4 审核媒资 1.2.5 绑定媒…