vue3为何放弃defineProperty,使用Proxy

Vue3放弃了Object.defineProperty,转向使用Proxy实现数据响应。Proxy可以在目标对象上创建拦截层,全面覆盖属性的读写及更多操作,解决了Vue2中定义属性、监听数组变化等问题。Vue3使用Proxy提升了性能,减少了初始化时的数据遍历和内存管理成本。
摘要由CSDN通过智能技术生成

一、先聊聊双向绑定原理

Vue中监听数据变化,底层实现其实就是Vue面试者老生常谈的双向数据绑定。双向数据绑定,即view中的数据发生改变,这个变化会传递到model上;当model发生了改变,view中的数据也会对应更新。

实现双向绑定的方式有很多,像Angular是基于脏检查的双向绑定,“脏检查”是一种很朴素的监听方法,笔者不才,只是略有了解。脏检查其实是一种效率比较低的方式,Angular的scope模型上设置了一个监听队列,这个队列中会有很多个 w a t c h , 监 听 它 在 负 责 的 m o d e l 中 是 否 有 发 生 变 化 。 A n g u l a r 中 存 在 着 两 个 函 数 watch,监听它在负责的model中是否有发生变化。Angular中存在着两个函数 watchmodelAngularapply和 d i g e s t , 其 中 digest,其中 digestdigest是一个局部更新的手段, a p p l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值