MVVM 和 MVC 区别是什么?哪些场景适合?

1、基本定义

1.1)MVVM 基本定义

MVVM 即 Model-View-ViewModel 的简写,即模型-视图-视图模型,模型(Model)指的是后端传递的数据,视图(View)指的是所看到的页面,视图模型(ViewModel)是 mvvm 模式的核心,它是连接 view 和 model 的桥梁。它有两个方向:
1.1.1)一是将模型(Model)转化成视图(View),即将后端传递的数据转化成所看到的
页面,实现的方式是:数据绑定,
1.1.2)二是将视图(View)转化成模型(Model),即将所看到的页面转化成后端的数据。
实现的方式是:DOM 事件监听,这两个方向都实现的,我们称之为数据的双向绑定

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

你可能感兴趣的:(MVVM 和 MVC 区别是什么?哪些场景适合?)