前端培训技术给一个数组项赋值,Vue 能检测到变化吗

发布时间:2021年02月18日作者:atguigu浏览次数:1,113

前端培训

1. 问题分析

由于Vue并没有给每个元素的下标属性添加监视,Vue 不能检测到直接通过下标设置新的元素值。也就是执行vm.items[indexOfItem] = newValue时,Vue检测不到变化,界面就无法更新。

2. 解决办法一:

1). 使用数组的splice方法 (比较方便易懂, 推荐使用)

2). 原理: Vue重写了数组一系列更新元素的方法, 在更新元素后就会去更新界面

// 此时执行的就不是数组原生的splice, 而是Vue重写后的
vm.items.splice(indexOfItem, 1, newValue)

3. 解决办法二:

1). 使用Vue.set()或vm.$set()

2). 原理:方法内部设置好元素数据后,就会去更新界面

Vue.set(vm.items, indexOfItem, newValue)
vm.$set(vm.items, indexOfItem, newValue)

想要了解跟多关于前端培训课程内容欢迎关注尚硅谷前端培训,尚硅谷除了这些技术文章外还有免费的高质量前端培训课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园综合楼3层(成都校区)