Vue双向数据绑定主要是通过数据劫持结合发布者-订阅者的模式。
通过Object.defineProperty()来劫持各个属性的setter,getter,数据变化的时候发布消息给订阅者,从而触发相应的回调监听。
demo:
我们通过Object.defineProperty()设置了obj的name属性
当我们设置name值的时候会触发set函数,当我们用name的时候会触发get函数
demo:
我们通过Object.defineProperty()设置了obj的name属性
当我们设置name值的时候会触发set函数,当我们用name的时候会触发get函数