前端框架系列之(mvvm)

本文主要介绍了MVVM设计理念,对比了MVVM与MVC、MVP的区别,并通过一个Vue项目实例阐述了MVVM的实现方式,特别是如何使用Vuex作为ViewModel。文章还讨论了Vuex的使用规范,强调了数据绑定的注意事项,最后提出了框架选择应考虑的因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

前面我们介绍过了mvc 前端框架系列之(mvc),mvp 前端框架系列之(mvp),MVP中我们说过随着业务逻辑的增加,UI的改变多的情况下,会有非常多的跟UI相关的case,这样就会造成View的接口会很庞大。而MVVM就解决了这个问题,通过双向绑定的机制,实现数据和UI内容,只要想改其中一方,另一方都能够及时更新的一种设计理念,这样就省去了很多在View层中写很多case的情况,只需要改变数据就行。

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • ViewModel (视图模型) 暴露公共属性和命令的视图的抽象。

我们再看一下mvc的设计图:

在这里插入图片描述

再看一下mvp的设计图:

在这里插入图片描述

最后看一下mvvm的设计图:

在这里插入图片描述

有没有发现,不管是mvc、mvp、mvvm其实都差不多呢?其实区别还是挺大的,在MVP中View和presenter要相互持有,方便调用对方,而在MVP中 View和ViewModel通过Binding进行关联,他们之前的关联处理通过绑定器(DataBinding)完成。

其实vue本身就是一个mvvm架构,通过es5的Object.defineProperty监听数据的变化,然后通过观察者模式通知各个vue实例,最后触发dom的更新,实现了数据驱动视图。感兴趣的可以去看一下我之前写的两篇关于vue的文章:

业务需求

  1. 接收用户输入的“用户名”和“密
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值