前端设计模式

MVC,MVP和MVVM都是常见的软件架构设计模式,它通过分离关注点来改进代码的组织方式,一种架构模式往往使用了多种设计模式。

MVC表示“模型-视图-控制器”,MVP表示“模型-视图-演示者”,MVVM表示“模型-视图-视图模型”;MVP、MVVM都是由MVC衍生出的。

MVC

  • Model: 模型(对数据的劫持监听、用于封装与数据相关的处理方法)数据管理
  • View: 视图(模板的自定义与保存,渲染页面)渲染管理
  • Controller: 控制器(M和V之间的连接器,用于控制应用程序的流程,及页面的业务逻辑)事件绑定处理管理

MVC模式的特点在于实现关注点分离,应用程序中的数据模型与业务和展示逻辑解耦

缺点是 各个层都有各自的驱动,只做了横向切割,任务分离不明显,仅仅将应用抽象,并未限制数据流。

MVVM

MVVM是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互;

Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上

MVVM就是为了解决MVC的驱动不集中,更加解决了视图与模型之间完全隔离开的关系

vm,viewmodel,收集依赖、模板编译、数据劫持