vue的for循环不建议用index作为key

我们页面总有一些相似的,我们想用循环渲染,根据对象数组结构进行渲染,这是不是很熟悉的场景。这时候我们需要有一个唯一的key绑定在循环渲染的元素上,一般情况下我们会用id,因为id是唯一的。然而有些页面要循环的数据(比如描述性的对象数组)没有id的时候,有的人会用index 下标作为key,实际上这个是不建议 的。比较推荐的做法是找出一个唯一标识(比如下标+内容/name拼接组合)

一、为什么不建议用Index

1、绑定元素会变: 当数组数据发生变化时,那么Vue无法准确地追踪每个子组件的身份。因为当一个数组比如前面加了元素item0,那么下标为 0的元素,它的内容是变化的,而不再是原来的item1了,下标绑定元素会变化的,并不是固定的。

2、性能问题: 当新的数据项插入到数组的开头或中间时,所有后续的子组件 会被重新渲染,即使它们实际上并没有发生变化。这样会导致性能问题,因为Vue要重新创建和销毁大量的子组件。

3、 重新渲染:数组中的项发生顺序变化,index作为key的子组件也会随之变化,这可能导致不必要的重新渲染。

二、如何设置唯一标识

**1、id:**数组元素有唯一标识(如id等),那么使用其唯一标识

2、使用index+name: 唯一性需要保证,以免出现重复的情况。另外,如果需要进行查找或者排序操作,可能需要考虑使用更合适的数据结构,以提高性能。

**3、添加唯一标识 :**可以考虑通过计算属性或者修改数据源来为每一项添加一个唯一标识

相关推荐
钰衡大师1 天前
Vue 3 源码学习教程
前端·vue.js·学习
C澒1 天前
React + TypeScript 编码规范|统一标准 & 高效维护
前端·react.js·typescript·团队开发·代码规范
时光少年1 天前
Android 视频分屏性能优化——GLContext共享
前端
IT_陈寒1 天前
JavaScript开发者必知的5个性能杀手,你踩了几个坑?
前端·人工智能·后端
跟着珅聪学java1 天前
Electron 精美菜单设计
运维·前端·数据库
日光倾1 天前
【Vue.js 入门笔记】闭包和对象引用
前端·vue.js·笔记
EstherNi1 天前
左右两侧定位的效果,vue3
javascript·vue.js
一只程序熊1 天前
UniappX 未找到 “video“ 组件,已自动当做 “view“ 组件处理。请确保代码正确,或重新生成自定义基座后再试。
前端
林小帅1 天前
【笔记】xxx 技术分享文档模板
前端
雾岛心情1 天前
【HTML&CSS】HTML为文字添加格式和内容
前端·css·html