先看这三个东西是啥,然后我们做出总结就可以了.
我们互联网最开始,是没有所谓的前后端之说的,从Web1.0开始,无非就是通过哟jsp,.net,asp,php
等等编写的
到了web2.0的时候,开始有了所谓ajax局部无刷新请求
刚开始是没有框架这个概念的,且Mvc最早出现也是在后端出现的.
至于Mvp是MVc的进化版本可以认为,后期又引入了一个叫做Presenter
Presenter代表中间人,负责数据的交互,直到后期的MVVM,实际上就是Presenter的升级版本
不过人家MVVM确实解决了很多开发问题,同时解决了维护两者映射关系的大量繁杂代码和DOM操作代码,提升了开发效率,可读性,保持了优越性能表现.
这就是以上的区别,如果还有继续研究,那就从MVC下手
MVC为啥叫做MVC呢?其实这个跟后端也是有关系的,不多叙述.
- Model:负责保存应用数据,与后端数据进行同步
- Controller: 负责业务逻辑,根据用户行为对Model数据进行修改
- View: 负责试图展示,将model中的数据可视化出来
分为这三个模块,看意思好像时挺复杂的,大白话就是这三个会形成一种三角关系,比如C=>M=>V
但是这种在实际开发中是不可行的.因为举个例子吧,任何一个小的事件都会按照这种事件,进行执行,就会显得非常不灵活.
然后就弄到了我们所谓的MVP也就是我们的升级版本,用中间人的形式,它负责View和Model之间的数据流动,防止view和model之间直接交流。
这里说一下,view和model是不可以直接进行通信的.
后来就有了MVVM
MVVM可以分解成(Model-View-ViewModel). ViewModel可以理解为presenter基础上的进阶版
viewmodel通过实现一套数据响应式机制自动想要Model中数据变化;
viewmodel会实现一套更新策略自动将数据变化转换为视图更新;
通过事件监听响应view中用户交互修改model中数据。
这样在ViewModel中间减少了大量DOM操作代码。
MVVM在保持View和Model松耦合的同时,还减少了维护它们关系的代码,使用户专注于业务逻辑,兼顾开发效率和可维护性。