vue中我们更新数组中的对象,在业务层看到了数据更新了,而在视图层我们的数据仍旧没有发生改变

致自己:遇到问题,只有深入探索理解结合实践,才能巩固记忆变成自己的!

场景:

修改列表中某一条数据后,我们使用静态更新数据方式,将后端返回更新后得对象覆盖旧对象,业务层(js代码层)打印日志可以看到数组中旧对象已经被更新,而页面上(视图层)这条数据没有改变!

步入主题:

在这里插入图片描述

1.我们在列表中进行某一个员工的编辑,当我们做了修改,点击提交!
2.前端调取修改员工的服务,请求成功后,后端会返回我们修改这个员工对象,
3.我们需要将这个对象,去覆盖列表中的旧对象,因为ID是不可变得条件,
4.我们依次为条件,去数组中判断找到旧对象,然后给数组中指定得对象进行覆盖!

在这里插入图片描述

this. s e t ( t h i s . e m p l o y e e L i s t [ i ] , t h i s . e m p l o y e e L i s t [ i ] , d a t a ) ; 注 意 : t h i s . set(this.employeeList[i],this.employeeList[i],data); 注意: this. set(this.employeeList[i],this.employeeList[i],data);this.set(A,B,C); 具体实践操作,并不权威(仅代表个人理解):
分别代表的含义:
A: 需更改的数据源(对象或数组)
B:需要更改的具体数据(对象或对象下的某一个数据)
C:更新的值或对象

说明(个人理解):以上例子告诉我们 this.employeeList[i] = data; 这种覆盖值更新数据得方式,只能及时改变数据层,不能及时修改视图层得数据,简单说它没有像ngModel双向绑定得功能(视图-数据任何一方改变,另一方同时随之改变),而使用vue中的this.$set()方法; 它里面肯定有同步数据层更新同步视图层改变的功能,也就是和ngmodel的功能一样。

vue官网文档:

在这里插入图片描述

在这里插入图片描述

这张图,要是以前我看到就会一略而过,就像很多东西没真正用起来之前,就不会真正去问这个说的是啥,什么用意在这里?

现在看到这张图后,恍然明白原来数组这些更新方法,拥有的不但是更新业务层(js代码层)的变化,而且还能看到视图层(页面上)对应数据的及时更新,简单说:上面这些方法拥有和ngModel一样的响应式功能,js层和视图层,任何一方改变,另一方里面同步更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值