Vue列表值改变,刷新问题

在使用vue做动态绑定时,发现list列表中存储的对象里的属性改变后,页面不会动态更新。

为啥会这样是因为:
根据官方文档定义:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

// 解决方法一:注意要引入Vue

this.$set(this.addFormData, 'projectCode', ob.code)
this.$set(this.tableData, index, item)

//解决办法二;不推荐因为消耗性能

this.userInfo['sex']='男';
this.$forceUpdate()

对于深结构数据,比如,修改数组的长度为0 arr.length=0; 给对象添加新的属性 obj.newAttrbute=‘value’;等等。这样写是没有效果的,页面上的数据并不会同步更新,因为没有按照vue的规范去写,对于深层数据,需要使用$set方法,手动给数据绑定get set方法,实现数据的。

当我们不想使用set方法,直接给对象添加属性或者修改数组的长度就可以使用$forceUpdate方法,实现强制更新,迫使vue实例重新渲染,它仅仅是影响实例本身和插在插槽内容的子组件,而不是所有的子组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值