Appearance
首先,Vue3用的是Proxy去实现数据响应式,所以动态添加属性的话也是可以的,这个问题只在Vue2中出现。
Proxy
出现这个问题的原因是Vue2用的Object.defineProperty去实现数据的响应式,当对象新增一个属性时,无法触发事件拦截,自然就无法将新增的属性设置成响应式数据
Object.defineProperty
Vue.set()
Object.assign
$forceUpdate