Vue v-for中:key中item.id与Index使用的区别解析

2024-03-01 0 264

先说结论,推荐使用【:key="item.id"】而不是将数组下标当做唯一标识,前者能做到全部复用

场景:删除无序列表中的<li>标签

Vue v-for中:key中item.id与Index使用的区别解析

<!DOCTYPE html>
<html lang=\”en\”>
<head>
<meta charset=\”UTF-8\”>
<meta name=\”viewport\” content=\”width=device-width, initial-scale=1.0\”>
<title>创建一个Vue实例</title>
<script src=\”https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js\”></script>
<link href=\”https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css\” rel=\”external nofollow\” rel=\”stylesheet\” integrity=\”sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD\” crossorigin=\”anonymous\”>
<script src=\”https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js\” integrity=\”sha384-/mhDoLbDldZc3qpsJHpLogda//BVZbgYuw6kof4u2FrCedxOtgRZDTHgHUhOCVim\” crossorigin=\”anonymous\”></script>
</head>
<body>
<div class=\”container\”>
<div id=\”app\”>
<!–
事件:做<li>标签的删除功能,根据class的id删除,
此案例删除class=\”3\”的标签
–>
<!– 原代码 –>
<li class=\”1\”>1</li>
<li class=\”2\”>2</li>
<li class=\”3\”>3</li>
<li class=\”4\”>4</li>
<li class=\”5\”>5</li>
<!– 1.使用item.id做:key唯一标识符 –>
<!– 删除3后,变成 –>
<li class=\”1\”>1</li>
<li class=\”2\”>2</li>
<li class=\”4\”>4</li>
<li class=\”5\”>5</li>
<!– vue开始将剩下的四个<li>与源代码的五个<li>进行匹配
使用的是diff算法对比新旧虚拟DOM
由于精准删除3,1和2直接代码复用,4和5发现class和内容均能匹配上
将class重新排列 1234
则映射出新的组合,如下:
–>
<li class=\”1\”>1</li>
<li class=\”2\”>2</li>
<li class=\”3\”>4</li>
<li class=\”4\”>5</li>
<!– ========================================================================= –>
<!– 2.使用index做:key唯一标识符 –>
<!– 删除3后,index数组下标会发生改变,变成 –>
<li class=\”1\”>1</li>
<li class=\”2\”>2</li>
<li class=\”3\”>4</li>
<li class=\”4\”>5</li>
<!– Vue将内容为4的li与内容为3的对比,发现匹配不上,删除3标签
再将内容为5的li与内容为4的对比,也匹配不上,又删除4标签 –>
<!– ========================================================================–>
<!– 总结:使用index很多情况不能代码复用,强制更新元素,影响性能 –>
</div>
</div>
<script>
const app = new Vue({
el: \’#app\’,
data:{
},
methods:{
}
})
</script>
</body>
</html>

到此这篇关于Vue v-for中:key中item.id与Index使用的区别的文章就介绍到这了,更多相关vue item.id与Index使用内容请搜索悠久资源网以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源网!

您可能感兴趣的文章:

  • vue中使用v-for时为什么不能用index作为key
  • vue 取出v-for循环中的index值实例
  • Vue.js 利用v-for中的index值实现隔行变色
  • 在vue中,v-for的索引index在html中的使用方法
  • 浅谈Vue2.0中v-for迭代语法的变化(key、index)
  • Vuejs在v-for中,利用index来对第一项添加class的方法

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 JavaScript Vue v-for中:key中item.id与Index使用的区别解析 https://www.u-9.cn/biancheng/javascript/182371.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务