v-bind:key= item index 的区别

view中  含有checkbox   item  text 三者 ,list的内容如下 

text 绑定点击事件,点击后删除list 的内容。

vi

 如果不用  v-bind:key属性 ,删除第一个元素的时候,会出现以下情况

view 里面 有checkbox  {{item}}  text  三者元素

删除的元素的时候,使用的是diff算法,diff算法为了节省渲染空间,会识别元素是否发生变化,如果不发生变化,就会将元素复用。

删除第一个元素时, view标签是一样的 ,checkbox标签一样,{{item}}中第一个元素‘青海长云暗雪山’被删除,第二个元素‘’孤城遥望玉门关替换上来,text标签是一样的,于是view checkbook text 发生复用。 导致第一个打钩的checkbox 保留了下来

view中添加v-bind:key=item  或者item.id(需要给每个数据添加一个id值区分数据)

删除成功

给每个view绑定了一个key值,key的内容是item ,即每句古诗,由于每句古诗内容不一样,就保证了key都是不一样的     用key值去区分 每个view是不一样的

删除第一个元素的时候,由于view标签不一样(key值不一样),导致整个view发生了更新,里面的checkbox值自然不会发生复用

如果给每个 view中添加v-bind:key=index,第一句古诗的index是0,view的key值是0,第二句index是1,view的key值是1,

删除第一句古诗之后,第二句古诗的index值变成了 0,key值也变成 了0,diff算法会吧 删除 前后 的view 识别为一样的 view. 导致 checkbox 继续复用

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值