返回顶部
首页 > 资讯 > 前端开发 > VUE >React中使用collections时key的重要性是什么
  • 856
分享到

React中使用collections时key的重要性是什么

2024-04-02 19:04:59 856人浏览 安东尼
摘要

这篇文章主要为大家展示了“React中使用collections时key的重要性是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React中使用collec

这篇文章主要为大家展示了“React中使用collections时key的重要性是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React中使用collections时key的重要性是什么”这篇文章吧。

React 不会 render 重复的 keys

为了彻底明白这个, 我们来声明一个这样的数组

const nums = [1, 2, 3, 5, 2]; // 它有两个元素的值是相等的

现在, 我们在 react 中来 render

<ul>
 {nums.map(num => <li key={num}>{num}</li>)}
</ul>

这小段代码构造出的理想 element 结构, 应该是这样的

<ul>
 <li key="1">1</li>
 <li key="2">2</li>
 <li key="3">3</li>
 <li key="5">5</li>
 <li key="2">2</li>
</ul>

然而, 实际 DOM 是这样的

<ul>
 <li>1</li>
 <li>2</li>
 <li>3</li>
 <li>5</li>
</ul>

React 给出了以下warning

React中使用collections时key的重要性是什么 

意思就是, 你必须为数组中的元素提供唯一的 key 值

React 会 re-render 某个 key 指向的内容发生变化的元素

我们来看一个向 users 集合添加 user 的例子

const users = [
 {username:'bob'},
 {username:'sue'}
];

users.map((u, i) =>
 <div key={u.username}>{u.username}</div>);

render 的结果如下

<div key="bob">bob</div>
<div key="sue">sue</div>

现在, 我们更新一下 users

const users = [
 {username:'joe'},
 {username:'bob'},
 {username:'sue'}
];

render 的结果将会改变如下

<div key="joe">joe</div>
<div key="bob">bob</div>
<div key="sue">sue</div>

在上面例子中, React 调用了它的 Reconciliation 算法, 然后把返回的结果也就是一个 key 为 sue 的新元素添加到了 users 的最前面

如何选择 Key

其实, 即使内容没有发生变化, 改变对应的 key 值, React 也会触发 re-render.

使用 map 函数的 index 来作为元素的 key, 对开发者来说是常见的, 因为有时这是必要的, 然而, 有时这也会导致性能下降问题

users.map((u, i) =>
 <div key={i}>{u.username}</div>);

还是以上的例子, 作了一点小小的改变后, React 瞬间由一个步骤变成了三个步骤:

  • 将 id 为 "1" 的元素从 "bob" 更改为 "joe"

  • 将 id 为 "2" 的元素从 "sue" 更改为 "bob"

  • 新增一个 id 为 "3" 的元素, 他的值为 "sue"

以上是“React中使用collections时key的重要性是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网VUE频道!

--结束END--

本文标题: React中使用collections时key的重要性是什么

本文链接: https://lsjlt.com/news/77432.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • React中使用collections时key的重要性是什么
    这篇文章主要为大家展示了“React中使用collections时key的重要性是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“React中使用collec...
    99+
    2024-04-02
  • react中key的作用是什么
    本文小编为大家详细介绍“react中key的作用是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“react中key的作用是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。...
    99+
    2024-04-02
  • react中的key怎么使用
    这篇“react中的key怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react...
    99+
    2024-04-02
  • overflow滚动的重要性是什么
    这篇文章主要介绍了overflow滚动的重要性是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   原理   设置一个块级作用域溢出...
    99+
    2024-04-02
  • JavaScript调试的重要性是什么
    本篇内容主要讲解“JavaScript调试的重要性是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript调试的重要性是什么”吧!在编写 Jav...
    99+
    2024-04-02
  • HTML标题的重要性是什么
    这篇文章主要介绍了HTML标题的重要性是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 HTML标题通过突出显示重要主题和文档结构来提...
    99+
    2024-04-02
  • Java 面试中接口的重要性是什么?
    在 Java 面试中,接口是一个非常重要的话题。接口是 Java 中的一种抽象类型,可以定义一组方法,但是不提供方法的具体实现。在本文中,我们将探讨接口的重要性以及在面试中可能会涉及到的问题。 一、接口的定义和特点 在 Java 中,接口...
    99+
    2023-10-15
    leetcode 接口 面试
  • 网站备份的重要性是什么
    网站备份的重要性在于保护网站数据和信息免受意外删除、黑客攻击、服务器故障等风险的影响。如果没有备份,一旦出现数据丢失或网站遭受攻击的...
    99+
    2024-04-17
    建站
  • vue中v-for的key唯一性是什么
    这篇文章主要介绍vue中v-for的key唯一性是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. DOM Diff要想真正了解 key 属性的存在意义,还真得从 DOM Diff 说起,并不需要深入了解 DO...
    99+
    2023-06-15
  • vue中key的作用是什么
    这篇文章将为大家详细讲解有关vue中key的作用是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为什么要使用VueVue是一款友好的、多用途且高性能的JavaScript框架,使用vue...
    99+
    2023-06-14
  • python中key的用法是什么
    在Python中,key是用于指定排序的规则的参数。在一些排序函数或方法中,可以通过指定key参数来自定义排序的规则。例如,在使用s...
    99+
    2024-03-01
    python
  • react中使用node的原因是什么
    这篇文章主要讲解了“react中使用node的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“react中使用node的原因是什么”吧! ...
    99+
    2024-04-02
  • Vuejs中key值的作用是什么
    这篇文章给大家介绍Vuejs中key值的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。key 的一个错误使用——使用 index 作为 key不知道你在写 v-for 的时候,会不会直接使用 index 作为...
    99+
    2023-06-15
  • python中sort key的用法是什么
    在Python中,sort key参数是用来指定在排序过程中使用的自定义函数。通过指定sort key参数,我们可以对可迭代对象中的...
    99+
    2024-03-15
    python
  • 存储和 git 在 Python 教程中的重要性是什么?
    在Python的开发过程中,存储和版本控制是非常重要的环节。在这个过程中,使用Git来管理代码和版本控制,使用存储来保存和读取数据是不可或缺的。本文将探讨存储和Git在Python教程中的重要性,以及如何使用它们。 一、存储在Python中...
    99+
    2023-08-02
    教程 存储 git
  • 网站设计中色彩搭配的重要性是什么
    色彩搭配在网站设计中是非常重要的,因为色彩能够直接影响用户的情绪和体验。合适的色彩搭配能够让网站看起来更专业、吸引人,提升用户的体验...
    99+
    2024-04-17
    建站
  • 域名根服务器的重要性是什么
    域名根服务器是互联网上最重要的服务器之一,它的主要作用是将域名解析为IP地址。所有的域名都需要通过根服务器才能被解析。如果没有根服务...
    99+
    2023-06-12
    域名根服务器 服务器
  • html列表中的key属性有什么用
    这篇文章给大家分享的是有关html列表中的key属性有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 diff 算法的时间复杂度是 O(n), 它的实现是基于以下两个假设...
    99+
    2024-04-02
  • 搜索意图的理解在SEO中的重要性是什么
    搜索意图的理解在SEO中的重要性体现在三个方面:一、提升内容相关性,使内容更符合用户需求;二、增强用户体验,提高网站的滞留时间和互动率;三、提升搜索排名,通过满足搜索引擎对用户满意度的判断。例如,通过分析用户可能的搜索目的(如信息获取、购买...
    99+
    2023-10-29
    意图 重要性 SEO
  • 大数据时代,自然语言处理在ASP面试中的重要性是什么?
    在当今大数据时代,自然语言处理(Natural Language Processing,简称NLP)已经成为了一项非常重要的技术。在企业的人力资源管理中,面试是一个非常重要的环节。而在面试过程中,自然语言处理技术也发挥着重要的作用。本文将着...
    99+
    2023-10-10
    面试 自然语言处理 大数据
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作