首页技术文章正文

MVVM和MVC分别是什么?有什么区别?使用场景是什么?

更新时间:2021-10-15 来源:黑马程序员 浏览量:

IT培训班


1.MVVM与MVC的定义

什么是MVVM?

MVVM即Model-View-ViewModel的简写,即模型-视图-视图模型,模型(Model)指的是后端传递的数据,视图(View)指的是所看到的页面,视图模型(ViewModel)是mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:

一是将模型(Model)转化成视图(View),即将后端传递的数据转化成所看到的页面,实现的方式是:数据绑定;

二是将视图(View)转化成模型(Model),即将所看到的页面转化成后端的数据。实现的方式是:DOM事件监听,这两个方向都实现的,我们称之为数据的双向绑定。

什么是MVC?

MVC是Model-View-Controller的简写。即模型-视图-控制器。M和V指的意思和MVVM中的M和V意思一样。C即Controller指的是页面业务逻辑,使用MVC的目的就是将M和V的代码分离。MVC是单向通信。也就是View跟Model,必须通过Controller来承上启下。


2.使用场景

主要就是MVC中Controller演变成MVVM中的viewModel,MVVM主要解决了MVC中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验,vue数据驱动,通过数据来显示视图层而不是节点操作,

场景:数据操作比较多的场景,需要大量操作DOM元素时,采用MVVM的开发方式,会更加便捷,让开发者更多的精力放在数据的变化上,解放繁琐的操作DOM元素。

3.MVC和MVVM的区别

MVC和MVVM其实区别并不大,都是一种设计思想, MVC和MVVM的区别并不是VM完全取代了C,只是在MVC的基础上增加了一层VM,不过是弱化了C的概念,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务等还是应该放在Controller中实现,也就是说MVVM实现的是业务逻辑组件的重用,使开发更高效,结构更清晰,增加代码的复用性。



猜你喜欢

JavaScript中let和var和const有什么区别?

v-show和v-if有什么区别?

什么是闭包函数?如何实现?

黑马程序员HTML&JS+前端开发课程

分享到:
在线咨询 我要报名
和我们在线交谈!