MVC和MVVM的区别

一、概念

MVC,MVP,MVVM是三种常见的前端架构模式(Architectural Pattern),它通过分离关注点来改进代码组织方式。不同于设计模式(Design Pattern),只是为了解决一类问题而总结出的抽象方法,一种架构模式往往能使用多种设计模式。

MVC模式是MVP,MVVM模式的基础,这两种模式更像是MVC模式的优化改良版,他们三个的MV即Model,view相同,不同的是MV之间的纽带部分。本文主要介绍MVC与MVVM的应用与区别,因为MVP好像不是很常用。

二、MVC

这个MVC是站在整个项目角度来看的,涵盖了前端和后端,前端是V(view层),后端是VC(controller+model)

在这里插入图片描述

三、MVVM

mvvm是前端视图层的分层开发思想,主要把每个页面分成了M、V、VM,其中VM是MVVM思想的核心,因为它是M和V之间的调度者
在这里插入图片描述

重点:前端页面中使用MVVM,主要是为了让开发更加方便,因为MVVM提供了数据的双向绑定,这个双向绑定是由VM来提供的

这里可以举个vue的例子

<div id="app-5">
  <p>{{ message }}</p>
  <button v-on:click="reverseMessage">逆转消息</button>
</div>
var app5 = new Vue({
  el: '#app-5',
  data: {
    message: 'Hello Vue.js!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})

代码解析:这里的html部分相当于View层,data相当于Model层,可以看到这里的View通过通过模板语法来声明式的将数据渲染进DOM元素,通过对view层元素的事件监听,一view有需要改变model(如点击后改变数据内容),ViewModel就会通过对应事件对Model进行更新,更新完后,数据会自动更新到View,这就是view->vm->model->view的过程。另一条路就是model数据改变(如:接口请求返回数据变化)会自动更新至View层

ViewModel层的核心是Vue中的双向数据绑定,即Model变化时View可以实时更新,View变化也能让Model发生变化。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ronychen’s blog

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

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

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

打赏作者

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

抵扣说明:

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

余额充值