Vue 数组/对象数据 更新,但是页面不渲染问题
已经赋值过的对象、数组时,向对象中添加新的属性,如果更新此属性的值,页面不会更新视图。是因为我们用错更新方法由于 JavaScript 的限制,Vue不能检测数组和对象的变化。尽管如此我们还是有一些办法来回避这些限制并保证它们的响应性。对于对象/数组Vue 无法检测 property 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化,所以 p
·
已经赋值过的对象、数组时,向对象中添加新的属性,如果更新此属性的值,页面不会更新视图。是因为我们用错更新方法
由于 JavaScript 的限制,Vue 不能检测数组和对象的变化。尽管如此我们还是有一些办法来回避这些限制并保证它们的响应性。
对于对象/数组
Vue 无法检测 property 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化,所以 property 必须在 data
对象上存在才能让 Vue 将它转换为响应式的。例如
// `vm.a` 是响应式的
var vm = new Vue({
data:{ a:1 }
})
// `vm.b` 是非响应式的
vm.b = 2
我们需要使用 Vue.set(object, propertyName, value)
方法向嵌套对象添加响应式 property。例如,对于:Vue.set(vm.someObject, 'b', 2)
您还可以使用 vm.$set
实例方法,这也是全局 Vue.set
方法的别名:
this.$set(this.someObject,'b',2)
更多推荐
已为社区贡献3条内容
所有评论(0)