vue2修改了数据 页面却没有更新

本文讲述了在Vue2中,如何避免因直接操作数组下标或长度导致视图不更新的问题,通过使用`splice`配合深拷贝,以及正确使用`$set`为非响应属性添加响应性来确保视图与数据同步。

splice

我们在数组中对数组进行操作时 当操作下标时 即使修改了数据 视图也不会更新 因为vue2中 操作数组下标、直接改变数组长度 vue无法检测到数据的更改 所以视图无法更新 我们可以在修改数据时 拷贝一份当时的数据 在修改完成以后 使用splice修改当前行的数据

rowChange(index){
	let item = this.tableData[index]
	item.number = 5
	this.tableData.splice(index, 1 , item)
}

$set

当我们需要给列表的某一项添加属性时 属性被修改了 我们的视图却无法更新 因为新加的属性没有添加响应式

	initTable(){
		this.tableData.forEach(v => {
			// v.isEdit = false  错误做法
			this.$set(v, isEdit, false) // 正确做法
		})
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值