vue3为何放弃defineProperty,使用Proxy

一、先聊聊双向绑定原理

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 y

你可能感兴趣的:(vue,vue,proxy)