查缺补漏一个vue里增删功能的小缺陷
我们经常会在需求里遇到增删改查得这样功能,类似于下面这样↓,点击添加按钮,新增一组表单供客户选择/填写,同样点击删除图标,可以删除对应的新增表单列表
前两天在开发得时候,遇到了这个问题,正常的思路是在一个数组里添加和删除就行,但是这里有一个问题,使用splice来删除对应表单的时候,总是会删除最后一项,也就是最新添加的一项,而不是对应的表单列表,在多方支持下查到了问题所在,特来排雷
- 先贴一段vue的官方文档解答
我们常用key的绑定都是直接使用列表循环的下标index,但没有与数组中元素挂钩,所以当我们删除元素时就会导致顺序错乱问题,并不会以我们期望的那样,点击某一条就删除对应项
解决这个问题只需要我们给每一个item一个与元素相关的唯一值,让key取这个唯一值即可,我这里用了id