对MVVM和MVC开发模式的理解

对MVVM和MVC开发模式的理解

  • 1、MVVM
  • 2、MVC
  • 3、MVVM与MVC的区别

1、MVVM

MVVM最早由微软提出来,它借鉴了桌面应用程序的MVC思想,在前端页面中,把Model用纯JavaScript对象表示,View负责显示,两者做到了最大限度的分离,把Model和View关联起来的就是ViewModel。
ViewModel负责把Model的数据同步到View显示出来,还负责把View的修改同步回Model,View 和 Model 之间的同步工作完全是自动的,无需人为干涉(由viewModel完成)。因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
在这里插入图片描述

2、MVC

MVC是包括model数据层、view视图层、controller控制层。各部分之间的通信都是单向的。
model,即数据模型,负责数据相关的任务,包括对数据的增删改查。
view,即视图层,即用户能看得到的界面。
Controller,即控制器,负责监听用户事件,然后调用 model 和 view 更新数据和视图。

在这里插入图片描述

3、MVVM与MVC的区别

1.mvc 中 Controller演变成 mvvm 中的 viewModel。
2.mvvm 通过数据来驱动视图层的显示而不是节点操作。
3.mvc中Model和View是可以直接打交道的,造成Model层和View层之间的耦合度高。而mvvm中Model和View不直接交互,而是通过中间桥梁ViewModel来同步。
4.mvvm主要解决了mvc中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UE4/5 通过Control rig的FullBody【蜘蛛模型,不用basic ik】

目录 根设置 FullBody IK 额外骨设置 ​编辑 晃动效果 根设置 第一步你需要准备一个蜘蛛模型,不论是官方示例或者是epic上购买的模型 然后我用的是epic上面购买的一个眼球蜘蛛: 第一步,我们从根创建一个空项【这个记得脱离父子级到root之…

多传感器时频信号处理:多通道非平稳数据的分析工具(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

四、用户管理

云尚办公系统:用户管理 B站直达【为尚硅谷点赞】: https://www.bilibili.com/video/BV1Ya411S7aT 本博文以课程相关为主发布,并且融入了自己的一些看法以及对学习过程中遇见的问题给出相关的解决方法。一起学习一起进步!!&#x…

【服务器远程工具】一款好用的xshell

这里写目录标题 背景Tabby简介安装使用SSHSFTPPowerShellGit 设置外观颜色快捷键窗口 插件支持总结 背景 作为一名后端开发,我们经常需要和Linux系统打交道,免不了要使用Xshell这类终端工具来进行远程管理。今天给大家推荐一款更炫酷的终端工具Tabby&…

【SQL应知应会】分析函数的点点滴滴(三)

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分析函数的点点滴滴 1.什么是分析函数:…

计算机中CPU、内存、缓存的关系

CPU(Central Processing Unit,中央处理器) 内存(Random Access Memory,随机存取存储器) 缓存(Cache) CPU、内存和缓存之间有着密切的关系,它们共同构成了计算机系统的核…

go-cqhttp签名服务sign-server的本地搭建

新版go-cqhttp新增签名服务器签名服务器相关问题 Issue #2242 Mrs4s/go-cqhttp GitHubhttps://github.com/Mrs4s/go-cqhttp/issues/2242 其在win10系统下本地化搭建的方式为: 1.解压缩qq安装包提取lib里面的libfekit.so、libQSec.so文件并存放至一个文件夹&…

nodejs高版本降为低版本的详细解决方案

部分老旧项目需要使用低版本的node,网上很多是无效的,高版本无法直接安装低版本node,但是低版本nodejs可以安装部分高版本node,从而达到升级效果,下面这篇文章主要给大家介绍了关于nodejs高版本降为低版本的详细解决方案,需要的朋友可以参考下 1.首先通过控制面板应用卸载当前环…

Spark 4/5

4. 启动Spark Shell编程 4.1 什么是Spark Shell spark shell是spark中的交互式命令行客户端,可以在spark shell中使用scala编写spark程序,启动后默认已经创建了SparkContext,别名为sc 4.2 启动Spark Shell Shell /opt/apps/spark-3.2.3-bi…

opencv检测二维码和条形码

文章目录 1 excel制作简单二维码2 识别二维码和条形码2.1 相关库2.2 decode解码2.3 圈出二维码的位置2.4 判断二维码是否授权 3 完整代码3.1 使用图片进行识别3.2 使用摄像头实时识别 4 总结 1 excel制作简单二维码 使用excel可以实现制作二维码,但只能实现做英文和…

Docker容器日志管理详解

1. 简介 Docker容器日志是指容器在运行过程中产生的各种日志信息,包括错误、警告、信息等。Docker将所有容器的日志统一管理,方便用户对容器进行监控、故障排查和性能分析。 1.1 什么是Docker容器日志 Docker容器日志是容器在运行过程中产生的各种日志…

ASEMI代理NXP高压三端双向可控硅BT139-800E综合指南

编辑-Z BT139-800E是一种高压三端双向可控硅开关,近年来由于其卓越的性能和多功能性而广受欢迎。这种强大的半导体器件广泛应用于各种应用,包括电机控制、照明控制和温度调节。 BT139-800E的特点 1.高压能力:BT139-800E设计用于处理高压&am…

[Leetcode] 0026. 删除有序数组中的重复项

26. 删除有序数组中的重复项 点击上方,跳转至Leetcode 题目描述 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语…

yum安装LNMP

目录 前言 一、yum安装要用在线yum源 二、安装Nginx 1、搭建Nginx环境 2、安装yum 3、查看Nginx是否安装成功 4、设置开机自启 三、安装MySQL 1、除系统中所有以"mariadb"开头的软件包 2、安装MySQL 3、设置开机自启 4、查看MySQL初始密码 5、修改MySQL密码…

C#和LABVIEW的对决:哪种上位机编程语言更适合你?

今天,我们将谈论主流的上位机编程语言。你听说过C#和LABVIEW吗?它们是的上位机编程语言,C#作为自动化主流编程语言特别受欢迎,LABVIEW用于自动化测试, 首先,我们来了解C#语言。C#是一种文本语言&#xff0c…

Docker教程

Docker 能解决的问题 ⾸先,我们先来看⼏个问题: 1. 合作开发的时候,在本机可以运⾏,在别⼈的电脑上跑不起来。 这⾥我们以 Java Web 应⽤程序为例,⼀个 Java Web 应⽤程序涉及很多东⻄,⽐如 JDK 、 Tomc…

基于ChatGPT的端到端语音聊天机器人项目实战(三)

企业级ChatGPT开发入门实战 第1课 基于ChatGPT的端到端语音聊天机器人项目实战 Gavin老师:NLP_Matrix_Space 1.4 使用FastAPI构建语音聊天机器人后端实战 在后端代码(backend)中调用了OpenAI API及其他的服务,如图1-10所示。 图1- 10 后端代码调用OpenAI API openai_requ…

Spring Boot 日志的主要组件及其特点

Spring Boot 日志的主要组件及其特点 在开发应用程序时,日志是非常重要的一部分。它可以帮助我们了解应用程序的运行情况,发现并解决问题。在 Spring Boot 中,有许多不同的日志框架可供选择。本文将介绍 Spring Boot 日志的主要组件及其特点…

【MySQL高级篇笔记-索引优化与查询优化(中) 】

此笔记为尚硅谷MySQL高级篇部分内容 目录 一、索引失效案例 二、关联查询优化 1、采用左外连接 2、采用内连接 3、join语句原理 1.驱动表和被驱动表 2.Simple Nested-Loop Join(简单嵌套循环连接) 3.Index Nested-Loop Join(索引嵌套循环连接) 4.Block Nested-Loop J…

CSS面经

1、CSS的BFC 一、何为BFC BFC(Block Formatting Context)格式化上下文,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。 二、形成BFC的条件 1、浮动元素,float 除 none 以外的值…