8、v-for修改列表内容 双向绑定失效

当我们使用vue开发时经常会遇到当vue实例已经创建好了,有时候需要再次给数据赋值时,并不能在视图中改变

(1)数组的双向绑定

原因:直接通过下标改变数组,Vue将不会监听到数据的改变

解决方法: 使用Vue.set()修改列表内容

Vue.set(list, index, value)

参数1 list: 要修改的对象
参数2 index: 属性(下标)
参数3 value: 属性的值(该下标所对应的值)

返回值:已经修改好的值
注意:会直接改变原来list的值

例如:将items中下标1处的值 修改为e  Vue.set (this.items, 1, 'e')

var vm =new Vue({
	el:'#app',
	data:{
		items:['a', 'b', 'c']
	},
	methods:{
		btn(){
			Vue.set(this.items, 1, 'e')
			console.log(this.items)
		}
	}
})

(2)对象的双向绑定

Vue.set( 对象名/数组名, 对象中要修改的属性名/数组下标, 修改后的值 )
  1. 参数1:想要修改的数组或者对象 {Object | Array} target
  2. 参数2:想要修改的对象名称或者对应的下标
  3. 参数3:想要修改成功后的值
  4. 返回的值:是第三个参数 value

例:修改对象obj的属性nodianzanflag的值为[1,2,3]

 let obj = this.dryingList[ind];
 Vue.set(obj, "nodianzanflag", [1,2,3]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值