Vue中给data中的对象属性添加一个新的属性时会发生什么,如何解决?($set())

  
  
  

点击button会发现, obj.b 已经成功添加,但是视图并未刷新:

在这里插入图片描述
Vue中给data中的对象属性添加一个新的属性时会发生什么,如何解决?($set())_第1张图片

原因在于在Vue实例创建时, obj.b 并未声明,因此就没有被Vue转换为响应式的属性,自然就不会触发视图的更新,这时就需要使用Vue的全局api—— $set()

  addObjB () {
        // this.obj.b = 'obj.b'
        this.$set(this.obj, 'b', 'obj.b')
        console.log(this.obj)
      }

$set() 方法相当于手动的去把 obj.b 处理成一个响应式的属性,此时视图也会跟着改变了
Vue中给data中的对象属性添加一个新的属性时会发生什么,如何解决?($set())_第2张图片

你可能感兴趣的:(vue)