首页 >

react中key的用法是什么

web前端|前端问答react中key的用法是什么
react
web前端-前端问答
产品试用系统源码,vscode如何调节界面,ubuntu分屏工具,tomcat显示绿点,TCMSP爬虫,php 重建索引,代屏蔽域名seo查询,h5房产网站模板,免费ttp模板下载lzw
react中key的用法是什么
网上报名asp源码,vscode无法找到mpi.h,ubuntu 网络消失,iis配置代理tomcat,同花顺自动爬虫,php 获取屏幕大小,抖音海外版搜索seo,php网站开发视频教程下载lzw
简单来说,react利用key来识别组件,它是一种身份标识标识,就像我们的身份证用来辨识一个人一样。每个key对应一个组件,相同的key react认为是同一个组件,这样后续相同的key对应组件都不会被创建。
chrome浏览器源码下载,ubuntu16 rz,tomcat容器有哪些语言,paython爬虫代码,php人才外包学习,白云区一站式seo优化市价lzw
Keys可以在DOM中的某些元素被增加或删除的时候帮助React识别哪些元素发生了变化。因此你应当给数组中的每一个元素赋予一个确定的标识。

react的diff算法是把key当成唯一id然后比对组件的value来确定是否需要更新的,所以如果没有key,react将不会知道该如何更新组件。

你不传key也能用是因为react检测到子组件没有key后,会默认将数组的索引作为key。

react根据key来决定是销毁重新创建组件还是更新组件,原则是:

key相同,组件有所变化,react会只更新组件对应变化的属性。

key不同,组件会销毁之前的组件,将整个组件重新渲染。

key的使用场景

在项目开发中,key属性的使用场景最多的还是由数组动态创建的子组件的情况,需要为每个子组件添加唯一的key属性值。那会有的人就会自然而然想到,key和动态渲染的子元素获取的index位置的值很接近,那不是可以直接用index附上key的值呢key={index}?

例如:

{dataList.map((item,index)=>{    return 
{item.name}
})}

在你尝试过后会发现,报错没了,渲染也没问题不是很正常嘛?!但是强烈不推荐用数组index来作为key。

如果数据更新仅仅是数组重新排序或在其中间位置插入新元素,那么视图元素都将重新渲染。

例如:

本来index=2的元素向前移动后,那该元素的key不也同样发生了改变那这样会改变的Key就没有任何的存在意义,既然是作为“身份证”一样的存在,那就不容有失。当然,在你用key值创建子组件的时候,若数组的内容只是作为纯展示,而不涉及到数组的动态变更,其实是可以使用index作为key的。

《react视频教学》


  • 暂无相关文章
  • Posted in 未分类