菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
140
0

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

原创
05/13 14:22
阅读数 48896

如 obj.b 属性已经成功添加,但是视图并未刷新。

原因在于在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 处理成一个响应式的属性,此时视图也会跟着改变了:

发表评论

0/200
140 点赞
0 评论
收藏