react——key值的理解

key不是给开发者使用的,是给reactdiff算法中使用的,diff算法会比较新旧虚拟dom,并且是同层比较,当同一层中有多个元素的时候,会比较这一层的key,

如果key相同,属性改变更新属性,位置改变就移动位置,不会发生删除创建元素,(只会将旧虚拟dom的节点位置移动.)

如果key不同,就会先删除元素在创建元素.

所以我们千万不要用index,时间戳等作为key.像我用index作为key,那假如我删除一个元素,会导致很多key都会改变.时间戳同理

posted @ 2020-03-29 17:00  大笛子  阅读(204)  评论(0编辑  收藏  举报