一 Vue数据双向绑定原理:
Vue数据双向绑定原理是通过数据劫持结合发布者-订阅者模式的方式来实现的,首先是对数据进行监听,然后当监听的属性发生变化时则告诉订阅者是否要更新,若更新就会执行对应的更新函数从而更新视图。
二 在vue2.x版本中,数据劫持是用过Object.defineProperty这个API来实现:
Object.defineProperty的一些问题
三 在vue3版本中,使用了proxy去实现对象的监听,避免了以上问题的出现,下面我们用proxy实现一个简易版本的数据劫持:Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。
推荐阅读:
Vue如何实现数据劫持:https://zhuanlan.zhihu.com/p/111591503
原文:https://www.cnblogs.com/terrymin/p/14702962.html