您的位置:首页 > Web前端 > Vue.js

vue 改变对象属性。视图不刷新问题

2019-04-12 10:04 323 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lily__an/article/details/89226324

vue 改变对象属性。视图不刷新问题

在vue的data数据中心定义一个对象obj,然后在触发事件时给obj添加或修改属性的时候,页面中的视图不会同步更新,只有当其他数据发生改变时,视图才会同步更新数据,按理来说vue data数据中心的数据是双向绑定的,当数据中心的数据发生改变时,视图就会同步更新才对。

后来通过查阅官网资料发现:

Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。例如:

var vm = new Vue({
data:{
a:1
}
})
// `vm.a` 是响应的
vm.b = 2
// `vm.b` 是非响应的

Vue 不允许在已经创建的实例上动态添加新的根级响应式属性(root-level reactive property)。然而它可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上:

Vue.set(vm.someObject, 'b', 2)

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

this.$set(this.someObject,'b',2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐