前端table或li设置key值问题

2023-12-13  本文已影响0人  AC编程

一、问题描述

给table或li设置key值时,我们一般使用后台数据的id值,而不是使用列表的下标值

二、原因

后台数据id和列表下标都是唯一不重复的,但列表下标值在列表进行删除操作时,就会有问题(前端的diff算法)。比如,现在有列表数据:

[
    {
        "index": 0,
        "name": "A"
    },
    {
        "index": 1,
        "name": "B"
    },
    {
        "index": 2,
        "name": "C"
    }
]

当删除元素B时,数据变成了:

[
    {
        "index": 0,
        "name": "A"
    },
    {
        "index": 1,
        "name": "C"
    }
]

删除前后,下标index=1的是两个值,diff算法对比会有问题,但使用id值则不会出现问题。

三、总结

上一篇 下一篇

猜你喜欢

热点阅读