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

381 阅读2分钟

面试理论 --

MVVM设计模式

mvvm.png

MVVM 详解

模式说明:MVVM = Model + View + ViewModel

  1. MVVM,一种软件架构模式,决定了写代码的思想和层次

● M:   model数据模型            (data里定义)
● V:    view视图                   (template里定义html页面结构)
● VM: ViewModel视图模型   (vue组件实例this)

  1. MVVM通过数据双向绑定让数据自动地双向同步  不再需要操作DOM

● V(修改视图) -> M(数据自动同步)
● M(修改数据) -> V(视图自动同步)

MVVM基本定义

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

使用场景

MVC和MVVM其实区别并不大。都是一种设计思想。主要就是MVC中Controller演变成MVVM中的viewModel,MVVM主要是解决了MVC中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验。
区别:Vue数据驱动,通过数据来显示视图层而不是节点操作。场景:数据操作比较多的场景,需要大量操作DOM元素时,采用MVVM的开发方式,会更加便捷,让开发者更多的精力放在数据的变化上,解放繁琐的操作DOM元素。