vue和uniapp的v-for循环数据更新时,刷新dom节点

uniapp或者vue在v-for循环的数据更新的时候,直接赋值是检测不到数据的更新去刷新dom节点的。
在vue官方文档“数组更新检测”https://cn.vuejs.org/v2/guide/list.html#%E6%95%B0%E7%BB%84%E6%9B%B4%E6%96%B0%E6%A3%80%E6%B5%8B 中给出了通过pop()和push()或者用vm. s e t ( v m . i t e m s , i n d e x O f I t e m , n e w V a l u e ) 去 更 新 数 据 , 但 是 在 试 过 先 p o p ( ) 再 p u s h ( ) 等 操 作 后 发 现 还 是 无 法 刷 新 d o m 节 点 。 最 后 找 到 一 个 简 单 粗 暴 的 方 法 , 用 v − i f 的 t r u e 和 f a l s e 转 换 销 毁 和 重 置 节 点 , 再 用 t h i s . set(vm.items, indexOfItem, newValue)去更新数据,但是在试过先pop()再push()等操作后发现还是无法刷新dom节点。 最后找到一个简单粗暴的方法,用v-if的true和false转换销毁和重置节点,再用this. set(vm.items,indexOfItem,newValue)pop()push()domviftruefalsethis.nextTick异步刷新dom节点。代码如下:

<view class="cart-list" v-if="hackReset">

	this.hackReset = false
	this.$nextTick(() => {
	this.hackReset = true
	})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值