let reactiveHandler = {get(target, prop) {const result = Reflect.get(target, prop)console.log('拦截到get', prop, result)return result},set(target, prop, value) {const result = Reflect.set(target, prop, value)console.log('拦截到set', prop, value, result)return result},deleteProperty(target, prop) {const result = Reflect.deleteProperty(target, prop)console.log('拦截到deleteProperty', prop, result)return result}
}
function shallowReactive(target) {if (target && typeof target === "object") {return new Proxy(target, reactiveHandler)} else {return target}
}
function reactive(target) {if (target && typeof target === "object") {if (Array.isArray(target)) {target.forEach((item, i) => {target[i] = reactive(item)})} else {Object.keys(target).forEach(key => {target[key] = reactive(target[key])})}} else {return target}
}