面试理论 --
MVVM设计模式
MVVM 详解
模式说明:MVVM = Model + View + ViewModel
- MVVM,一种软件架构模式,决定了写代码的思想和层次
● M: model数据模型 (data里定义)
● V: view视图 (template里定义html页面结构)
● VM: ViewModel视图模型 (vue组件实例this)
- 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元素。