简单介绍前端MVC与MVVM

简单介绍前端MVC与MVVM

MVC

一、概述

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范,用一种业务逻辑、数据、界面显示分离的方法组织代码,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

二、通信方式

在这里插入图片描述

  1. View 传送指令到 Controller

  2. Controller 完成业务逻辑后,要求 Model 改变状态

  3. Model 将新的数据发送到 View,用户得到反馈

MVC的通信是单向的:

浏览器发送请求

Contorller和Model交互获取数据

Contorller调用View

View渲染数据返回

MVVM

一、概述

MVVM(Model-View-ViewModel),是一种 基于前端开发的架构模式

核心是提供对View 和 ViewModel 的双向数据绑定,View和Model之间并没有直接的联系,而是通过ViewModel进行交互,View的变动,自动反映在ViewModel上,反之亦然,这样就保证视图和数据的一致性。

  • M----> model 代表数据模型层,也可以在Model中定义数据修改和操作的业务逻辑;
  • V-----> view 视图层(界面),用来展示数据,它负责将数据模型转化成UI 展现出来。
  • VM----> ViewModel(视图模型),是一个同步View 和 Model的对象。

二、通信方式

在这里插入图片描述

View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

MVC和MVVM的区别

  1. MVC和MVVM的区别并不是VM完全取代了C,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,它还是存在,在其它视图操作业务等还是应该放在Controller中实现。也就是说MVVM实现的是业务逻辑组件的重用。
  2. MVVM通过数据来显示视图层而不是节点操作,VM通过数据双向绑定来实现。
  3. MVVM解决了MVC中大量的DOM操作导致页面渲染性能降低,加载速度变慢,影响用户体验的问题。
  4. MVVM的优势在于不用亲自操作DOM, 数据是响应式的, 一旦数据变化, 自动更新界面。

猜你喜欢

转载自blog.csdn.net/qq_44415875/article/details/109498720