美文网首页
解决vue修改对象时,视图不同步的问题

解决vue修改对象时,视图不同步的问题

作者: cztflove | 来源:发表于2017-11-13 10:17 被阅读0次

我们先来看一段代码

<p>{{testObj.a}}</p>
...
data () {
    return {
        testObj: { a: 1 }
    }
},
methods: {
    changeVal () {
          this.testObj.a = 2
          console.log(this.testObj.a)  //2
    }
}

在执行changeVal方法后,我们理想中的结果是视图中的1变成2
而事实上这样改变对象的属性值,虽然可以改变它的值,却不会触发视图的更新
正确的做法应该使用vue提供的全局方法Vue.set(在组件中可以使用this.$set)

<p>{{testObj.a}}</p>
...
data () {
    return {
        testObj: { a: 1 }
    }
},
methods: {
    changeVal () {
          this.$set( this.textObj, 'a', 2)
          console.log(this.testObj.a)  //2
    }
}

除此之外vue还提供Vue.delete(在组件中可以使用this.$delete)用于删除对象的属性

相关文章

网友评论

      本文标题:解决vue修改对象时,视图不同步的问题

      本文链接:https://www.haomeiwen.com/subject/pcvamxtx.html