MVVM的再次理解

MVVM的理解

MVVM: Model、View、ViewModel

我要着重介绍的是ViewModel, 从字面意思就能看出ViewModel是View层的Model,也就是说ViewModel就是View的逻辑层。 ViewModel就是为了存储View的相关状态、行为,而不仅仅是View绑定的一些字段。

举个例子:比如界面当前的编辑状态、选择状态等等状态都是ViewModel存储的。

再举个例子:当View收到用户的输入时,可以通过Command等来调用ViewModel的处理, ViewModel继续调用Model层的增删改或者通过Event通知别的ViewModel处理。

也可以认为ViewModel是Model的一种特殊例子。 好多Model层的数据并不能直接呈现给某个View,因此需要ViewModel做包装和转换。换句话说, 传统的DTO(Data Transfer Object)应该定义在ViewModel层来转换Model的某些数据。

总结下:View通过DataContext可以知道ViewModel, ViewModel不知道View!, ViewModel不应该对View有引用关系。当ViewModel对View的状态和行为都进行了存储时, 就能完全脱离View而存在。

和MVC的对比:

MVC一般都是Controller先接受到用户输入, 然后Controller来创建View, 而且Controller创建完View后就不关心View了。下次用户的输入又再次先进入Controller来处理。

MVVM是View先接受到用户输入, 然后View通知ViewModel;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中,MVVM(Model-View-ViewModel)是一种软件架构模式的理解MVVM将应用程序分为三个部分:Model(模型),View(视图)和ViewModel(视图模型)。 在Vue中,Model代表着应用程序的数据和业务逻辑,View则是用户所看到的界面。ViewModel作为连接Model和View的桥梁,负责监听Model的变化,并将数据和状态同步到View上。ViewModel还负责处理用户的交互行为,将用户的操作反馈到Model中。这样,ViewModel实现了视图和模型层的解耦,使得应用程序更容易维护和扩展。 为了实现MVVM的双向绑定,Vue使用了Object.defineProperty方法,它能够在对象上定义新的属性或修改现有属性的行为。通过这种方式,当Model中的数据发生变化时,ViewModel能够监听到并及时更新View的内容,反之亦然。这种双向绑定的机制使得开发者无需手动操作DOM,使得开发更加方便和高效。 需要注意的是,在Vue中,ViewModel并不完全取代了Controller,而是将展示的业务逻辑从Controller中抽离出来,实现了业务逻辑组件的重用。其他视图操作和业务逻辑仍然应该放在Controller中实现。 综上所述,Vue中的MVVM是一种软件架构模式,通过将应用程序分为Model、View和ViewModel三个部分,实现了视图和模型层的解耦,并借助双向绑定机制实现数据的自动更新。这种架构模式能够提高开发效率和代码的可维护性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值