Vue的响应式原理

73 阅读1分钟

vue响应式原理

vue.js采用数据劫持结合发布-订阅者模式,通过Object.defineProperty()来劫持data中各个属性的setter、getter(对应Object.defineProperty()中的get()与set()),在数据变动时,发布消息给订阅者,触发响应的监听回调。

Object.defineProperty(obj, objkey, {
                get() {
                    console.log('我读取到value值了');
                    return value;
                },
                set(newVal) {
                    console.log('我更改value值了');
                    value = newVal
                }
            })