前端MVC、MVP、MVVM模式

本文介绍了前端开发中的三种常见架构模式:MVC、MVP和MVVM。MVC模式中,Controller作为View与Model的桥梁;MVP模式下,Presenter协调View与Model的同步;MVVM模式利用数据绑定实现View与Model的自动同步,降低了耦合度,提高了可重用性和测试性。

前端MVC、MVP、MVVM模式


简介

MVC、MVP、MVVM是三种前端的软件架构设计模式,主要用于优化代码结构,便于后期的项目开发和维护工作。


MVC模式

MVC模式是通过分离Model、View、Controller的方式组织代码。
View负责页面的显示逻辑;
Model负责存储页面的业务数据以及对相应数据的操作;
Controller是View层与Model层之间的纽带,当用户与页面产生交互的时候,Controller中的事件触发器开始工作,调用Model层并对Model层进行修改,之后Model层的改变会通知View层更新页面,(观察者模式,此时View层与Model层进行相互耦合)。
用户对View的操作交给了Controller处理,在Controller中响应View的事件调用Model的接口对数据进行操作,一旦Model发生变化便通知相关视图进行更新
view的变化,先传到controller中,controller对model中的数据进行更改,model层中数据的更改会被直接通知到view层中
在这里插入图片描述


MVP模式

MVP模式是通过分离Model、View、Presenter的方式组织代码。
View负责页面的显示逻辑;
Model负责存储页面的业务数据以及对相应数据的操作;
Presenter将View层的变化与Model层的变化绑定在一起,当用户与页面产生交互的时候,View和Model可以进行同步的更新。
MVP中的presenter同时具有View和Model的接口。
Presenter作为一个中转站,view中的变化先传到Presenter
Presenter传到Model中
对Model中的数据进行更改
再通过Presenter将数据更新到view层中
在这里插入图片描述


MVVM模式

MVVM模式是通过分离Model、View、ViewModel的方式组织代码。
View负责页面的显示逻辑;
Model负责存储页面的业务数据以及对相应数据的操作;
ViewModel使用了双向的数据绑定,
实现View与VM保持同步,
替代了繁琐复杂的DOM操作,
实现了View和Model的自动同步,也就是当Model的属性改变时改变属性后该属性对应View层显示会自动改变。
核心是DOM Listeners和 Data Bindings两个工具。
DOMListeners 工具用于监听 View 中 DOM 的变化,并会选择性的传给 Model;
Data Bindings 工具用于监听 Model 数据变化,并将其更新给 View。
在这里插入图片描述


MVVM优点:

MVVM模式和MVC模式类似,主要目的是分离视图(View)和模型(Model),有几大优点:

低耦合,视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。

可重用性,可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。

独立开发,开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xml代码。

可测试,界面向来是比较难于测试的,而现在测试可以针对ViewModel来写

MVCMVPMVVM是常用的软件设计模式,用于分离应用程序的不同组件,提高代码的可维护性和可重用性。以下是它们的概念和区别: 1. MVC模式(模型-视图-控制器):MVC模式是最古老也是最常用的设计模式之一。它将应用程序分为三个组件:模型、视图和控制器。模型负责处理数据和业务规则,视图负责展示数据给用户,控制器负责处理用户输入并更新模型和视图。MVC模式通过分离关注点,使得修改一个组件对其他组件没有依赖,增强了代码的可维护性。 2. MVP模式(模型-视图-展示器):MVP模式是基于MVC模式的演化,主要用于桌面和移动应用程序的开发。它与MVC的不同之处在于,视图和控制器被合并成一个展示器,展示器负责处理用户输入、更新模型并更新视图。MVP模式通过与视图分离,使得视图的变化不会影响展示器的逻辑。这样,在测试时可以更轻松地独立对展示器进行单元测试。 3. MVVM模式(模型-视图-视图模型):MVVM模式是一种用于构建用户界面的设计模式。它将视图的状态和行为抽象成一个视图模型,视图模型负责处理用户输入、保存视图状态、与模型进行交互,并通过数据绑定将数据自动更新到视图上。MVVM模式通过数据绑定机制,使得视图和模型之间的通信变得更简单,提高了可维护性和可重用性。它常用于Web前端开发和桌面应用程序的现代界面开发。 总结来说,MVCMVPMVVM是三种常见的软件设计模式MVC模式是最早的一种,将应用程序分为模型、视图和控制器,用于分离关注点。MVP模式是基于MVC模式的演化,通过将视图和控制器合并成一个展示器,便于测试和维护。MVVM模式是用于构建用户界面的设计模式,通过视图模型和数据绑定机制,实现了视图与模型之间的解耦。每种模式都有自己的特点和适用场景,根据具体需求选择合适的模式可以提高开发效率和代码质量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天都在掉头发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值