关于MVC、MVP和MVVM

首先这三者都是软件架构模式,他们的设计目标都是为了解决Model和View耦合的问题。

MVC

MVC最早是出现在后端的,因为在Web1.0时代并没有前端的概念,整个系统的架构大概就是服务端应用程序加上横跨客户端和服务端的JSP,JSP中又包含了HTML和CSS和JS。这种架构很明显的缺点就是JSP很难维护,而且服务端十分臃肿。
所以MVC框架应运而生,最主要的目的就是把数据、视图和业务逻辑控制进行分层。

  1. 仅限于后端的MVC
    在这里插入图片描述
    这里的MVC和前端关系几乎没有,进行的是服务端渲染,所有的页面由服务端生成后给前端返回一个HMTL文件
  2. 前后端分离(得益于让Web进入2.0时代的AJAX)
    在这里插入图片描述
  3. 前端的MVC
    单纯的前后端分离项目仍然会带来代码难以维护的问题,前端同样需要合适的软件架构。
    View
    Controller
    Model
    工作流程就是,视图通过某些特定事件去触发控制器,控制器再修改模型,模型被修改后重新映射再视图上。但不适合前端直接用

MVP
View
Presenter
Model

MVP和MVC相似,Presenter可以理解成一个中间人,它负责View和Model之间的数据流动,防止View和Model的直接数据交流。但随着项目体积增大,Presenter的会变得越来越臃肿,带来代码难以维护的老问题。


MVVM

MVVM(Model-View-ViewModel)最早是AngularJS带来的,VUE也深受MVVM的影响。ViewModel可以理解为Presenter的进阶版。MVVM的核心思想就是解决在MVP架构中需要开发者自己编写Presenter的痛点,用户只需要关心Model如何改变即可,不用自己编写大量的DOM操作
ViewModel通过一套数据响应式机制自动相应Model中的数据变化,同时ViewMode会实现一套更新策略自动将数据变化转化为视图更新(涉及到diff算法和VDOM
在这里插入图片描述
关于VUE2的双向数据绑定,其核心是 Object.defineProperty()


讲的很好的一个视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值