vue的响应式是如何实现的,及什么是MVVM

Vue2的响应式依赖于Object.defineProperty和发布者订阅者模式,而Vue3使用Proxy和Reffect实现更全面的劫持。Vue3的响应式处理对对象和数组变化更友好,但兼容性较弱。MVVM是Model-View-ViewModel架构,用于同步数据模型和视图。
摘要由CSDN通过智能技术生成

Vue2

Vue2的数据双向绑定,响应式原理,其实就是通过Object.defineProperty()结合发布者订阅者模式来实现的。

  • Observer通过Object.defineProperty进行数据劫持
  • Dep发布者,添加订阅者以及在数据发生改变时候通知所有的订阅者
  • Watcher订阅者,对数据进行观察以及保存数据修改需要触发的回调
  • Compiler模板编译器,对HTML模板进行编译,提取其中的变量并转化为数据(绑定更新Watcher订阅者)。

Vue3

通过Proxy(代理):拦截对象中任意属性的变化,包括:属性值的读写,属性的增加,属性的删除等。
通过Reffect(反射):对源对象的属性进行操作

扩展:Vue2和Vue3响应式区别:

Vue3是使用Proxy,Proxy可以劫持整个data对象,然后递归返回属性的值的代理即可实现响应式;但是它的兼容性不是很好;Vue2是使用Object.defineProperty,它只能劫持对象的属性,所以它需要深度遍历data中的每个属性,这种方式对于数组很不友好,而且对象观测后,新增的属性就不是响应式的,不过可以用Vue.set()来添加新的属性。

什么是MVVM

MVVM是一种设计思想,它是Model-View-ViewModel的缩写,它也是MVC的增强版。

  • Model是代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑。
  • View是代表UI组件,它负责将数据模型转化成UI展现出来。
  • VIewModel是一个同步VIew和Model的对象。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值