用'人话'简述MVC与MVVM的区别

388 阅读2分钟

  1. MVVM

vue.js就是MVVM的一种实现,也就是我们常说的双向绑定,什么是双向绑定呢,就是比如你考试考了59分,你的爸爸就会打你.打你和59分是绑定的,一旦你不及格 你就会挨打,一旦挨打那就是你不及格。但是呢MVVM最大的特点就是 他可以不止绑定一个值,意思就是挨打还有可能是不听话,不写作业,不及格也有小概率事件不挨打,或者混合双打对不对?
那接着我们就来解释解释MVVM分别代表什么

  • M:数据的模型(可以粗略理解为负责在数据库中存取数据)  V:视图(显示器上的画面)  VM:视图模型
  • 顾名思义VM就是使得V和M双向绑定的一个桥梁,绑定器.在视图模型中,绑定器在视图和数据绑定器之间进行通信。而且VM可以多次重用。

2.MVC

  • M:数据的模型(可以粗略理解为负责在数据库中存取数据) V:视图(显示器上的画面) C:控制器

MVC主要是用于分层目的的,View一般是通过controller来与Model进行联系,V和M不可以直接联系而是使用C来作为桥梁且是单向的。

总结:首先我们要明白的是MVVM的出现并不是要完全替代MVC,VM的出现只是抽离了C的业务逻辑处理,视图操作业务还是在C中实现,也就是说MVVM实现的是业务逻辑组件的重用。

  • MVVM通过数据来显示视图层而不是节点操作
  • MVVM主要解决了MVC中大量的dom操作使页面渲染性能降低,加载速度变慢,影响用户体验