MVC、MVVM是什么?

164 阅读1分钟

MVC

MVCModel-View-Controller的缩写

主要目的是对代码解耦. 把混合在一起的代码拆分成 3 部分;

html中不存在任何逻辑代码, 没有JavaScript代码痕迹.

以原生 HTML 为例:

  • Model: 数据模型层

早期前端: 弱化的Model. 不关注 Model 层, 数据都是从 服务器 请求下来, 直接使用即可. 2.现在前端: 使用 WebStorage, 框架中的Vuex, Redux等管理数据 在TypeScript语言中, 新增了数据类型声明特征, 才让 Model 在前端变得尤为重要.

  • View: 视图层

书写普通的html. 不掺杂任何 JS 代码. 例如:<button id="tedu">Tedu</button> 注意: 此按钮 没有 onclick 的事件写法.

  • Controller: 控制器层

控制 HTML 的具体行为, 具体为script代码范围, 例如 为id="tedu"的按钮添加事件的写法:

1.var btn = document.getElementById("tedu");
2.btn.onclick = function(){alert(123456)}

MVVM

MVVMModel-View-ViewModel的简写。它本质上就是 MVC 的改进版。它本质上就是 MVC 的改进版。MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。 以 `

Vue 为例:

  • Model: 数据模型层

script 部分的 data 属性, 专门管理数据

  • View: 视图层

即template 中的代码, 负责 UI 的构建

  • ViewModel: 视图模型层

new Vue({}) 部分. 自动管理数据和视图. 重点是双向数据绑定功能, 实现了 数据变化视图自动变更. 视图变化,数据自动联动.