vue数组变化,视图没有更新

Vue在检测到数组变化时,并不是直接重新渲染整个列表,而是最大化地复用DOM元素,换的数组中,含有相同元素的项不会被重新渲染,因此可以大胆的用新数组替换旧数组,不用担心性能问题。

以下变动的数组中,vue是不能检测到的,也不会触发视图更新:

1.通过索引直接设置项, app.book[3] = { ... }

解决方法:Vue.set(app.book,3,{...})

如果是在webpack中,使用组件化的方式,默认没有导入Vue,这时可以使用$set:

this.$set(app.book,3,{...})

 

2.修改数组长度 , app.book.length = 1

解决方法:app.book.splice(1)

 

 

之前做项目的时候,遇到了这个问题,也是在网络上找的方法。今儿看了《vue.js实战》第五章-内置指令里面清晰的写着解决方法,突然领悟到要是一开始接触vue时,就应该耐心的看看书,不至于做项目的时候遇到辣么多问题。(这本书建议初学者看看)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值