vue v for key,你知道vue中key的原理吗-说说你对它的理解

  vue v for key,你知道vue中key的原理吗?说说你对它的理解

  为了给Vue一个提示,让它可以跟踪每个节点的身份,从而重用和重新排序现有的元素,您需要为每个项目提供一个唯一的key属性。下面这篇文章主要介绍了v-for中key的真实作用,Vue深有体会,供大家参考。

  

目录

  前言1: key使用索引2: key使用唯一ID进行汇总。

  

前言

  大家都知道,在v-for中有两种最常用的绑定key的方法:

  第一个使用索引,第二个使用唯一id。然后,笔者将用几个小案例来描述两种方法在渲染上的明显区别。

  

第一种: key 采用 index

  我们先来看代码。

  模板

  div class=root

  div class=item v-for=(item,index) in list :key=index

  h2{{ item.text }}/h2

  /div

  Button @click=replaceData 替换数据/button

  /div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  列表:[

  {text: 33333},

  {text: 66666},

  {text: 99999},

  ]

  }

  },

  方法:{

  replaceData() {

  this.list=[

  {text: 22222},

  {text: 44444},

  {text: 88888},

  ]

  }

  }

  }

  /脚本

  样式lang=scss 。项目{背景:橙色;}

  /风格

  这里,我们呈现列表数组,使用index作为键,然后添加一个替换数据按钮事件。来看看效果吧。

  当我们单击“替换数据”按钮时,数据会变成这样。

  一切看起来都很正常,对吧?接下来才是重点。我们必须做一些小的改变。首先,我们刷新页面以将数据恢复到原始数据,然后我们手动删除第二个数据。

  现在只剩下3333和99999了。这时候我们点一下替换数据,看看有什么作用。

  啧啧,只替代了第一条和第三条。原来的第二篇文章刚刚被我们删了,导致44444没有被渲染。为什么?其实很简单。因为替换数据的数组的索引和第一个数组的索引是一样的,为什么Vue判断是一样的之后还需要创建Dom,所以不会为第二个重新创建Dom。这就是索引作为一个键的作用。

  注意:表面视图没有改变,但是数据已经更新。当你访问列表时,仍然有三个数据2222、44444和8888在里面。只要记住Vue是数据驱动的而不是视图。

  

第二种:key 采用唯一 ID

  接下来,我们来看看第二个。代码如下所示

  模板

  div class=root

   div class= item v-for=(item)in list :key= item . id

  h2{{ item.text }}/h2

  /div

  Button @click=replaceData 替换数据/button

  /div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  列表:[

  {text: 33333 ,id: 1},

  {text: 66666 ,id: 2},

  {文本:“99999”,id: 3},

  ]

  }

  },

  方法:{

  replaceData() {

  this.list=[

  {text: 22222 ,id: 4},

  {text: 44444 ,id: 5},

  {文本: 88888 ,id: 6}

  ]

  }

  }

  }

  /脚本

  样式lang=scss 。项目{背景:橙色;}

  /风格

  代码与上面类似,除了id被添加并绑定到键,

  接下来,我们来过一遍上面的流程,看看这次有什么不同。

  聪明的你已经看到了删除第二项后,点击变更数据会生成三个新项而不是两个。相信你也明白其中的原理。替换数据的批次id与之前的批次不同,因此Vue将在比较并找到差异后帮助我们生成新的Dom。

  以上就是使用索引和唯一id的明显区别。

  另外,比如unique id多于上面的绑定方法,我们也可以在v-for中使用:key=Math.random()来生成unique id,但是会有一些细微的区别,这里就不举例了。至于哪个键可以用来提升性能,并不是本章的初衷。读者可以自行在网上搜索。我相信只要你能明白以上两个绑定键的区别,

  

总结

  关于key在Vue深入理解v-for中的真实作用的文章到此为止。关于Vuev-for中key的作用的更多信息,请搜索我们以前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: