MVC & MVVM

本文对比了MVC和MVVM架构模式,重点讲解了MVC中Model-View-Controller的关系,以及MVVM如Vue中的双向数据绑定原理,包括响应式数据变化和观察者模式的实现机制。
摘要由CSDN通过智能技术生成

MVC和MVVM都是架构模式。

一、MVC ( backbone.js )[了解]

  • M: Model数据模型
  • V:  View 视图
  • C: controller控制器

    数据模型发生改变,交给控制器处理,控制器通知视图渲染

二、MVVM

  • M: Model数据模型
  • V: View视图
  • VM: ViewModel 视图模型

   Vue是基于MVVM实现的,主要是基于MVVM实现了双向数据绑定。

  • 数据  ====>  视图: 使用Object.defineProperty递归挟持Vue实例对象data中的所有数据,对所有数据的访问就getter和setter代理了,当我们改变数据,就会触发setter函数,Vue的底层就会通知视图更新渲染。
  • 视图  ====>  数据: Vue对表单的输入进行了dom监听,把监听到的数据,同步到Model数据模型中(data中)


数据的响应式原理

        数据  ====>  视图: 响应式就是我们只要修改数据,自动更新渲染视图,原理是: 使用Object.defineProperty递归挟持Vue实例对象data中的所有数据,对所有数据的访问就getter和setter代理了,当我们改变数据,就会触发setter函数,Vue的底层就会通知视图更新渲染

观察者模式:设计模式 【了解】

  ​    初始化代码的时候,Vue的底层有一个observe把所有数据都挟持了, 有一个订阅者Dep和一个观察者Watcher,Dep实现把访问过的属性收集起来了,当数据改变,触发setter,Dep通知观察者,说数据变化了,观察者调用更新方法,进行数据的更新,通知视图进行渲染。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值