天天看点

v-model 绑定对象不实时更新 原因和解决方案

今天遇到这样一个问题 动态的向一个被绑定的对象中添加属性。Vue 无法检测 property 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化,所以 property 必须在 <code>data</code> 对象上存在才能让 Vue 将它转换为响应式的。例如:但是在实际应用中问题出现了:在向对象中添加属性后,与对象绑定的组件内容却未发生变化,必须要再次刷新组件,其内容才会变为更改后的内容。

对于已经创建的实例,Vue 不允许动态添加根级别的响应式 property。但是,可以使用 <code>Vue.set(object, propertyName, value)</code> 方法向嵌套对象添加响应式 property。例如,对于:

您还可以使用 <code>vm.$set</code> 实例方法,这也是全局 <code>Vue.set</code> 方法的别名:

至此,<code>v-model</code> 绑定数据不实时更新的问题方才得到了解决。