首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >前端测试题:(解析)React中,key的作用是?

前端测试题:(解析)React中,key的作用是?

作者头像
舒克
发布2021-02-26 16:28:01
发布2021-02-26 16:28:01
6640
举报

考核内容: 前端Reactjs实战用法

题发散度: ★★★

试题难度:★★

看看大家的选择

解题:

在react的使用过程中遇到过这样的警告,需要对渲染的组件添加key属性,那么,这个key属性的作用到底是什么呢?

我们可以通过同一个数组testArray来渲染两个不同的列表,一个列表项指定了key属性,另一个不指定key属性,然后我们观察他们打乱前后的运行结果。

打乱顺序前,在input中填入内容

打乱顺序后

我们可以观察一下,打乱顺序后,有无指定key属性运行结果的异同。

相同的是,每一个项的input中的value都得到了保留

不同的是,如果我们不指定key属性,列表中组件的标题和input在打乱顺序之后,好像已经对不上号了,那么,是什么原因造成的呢?

我们来简单的了解一下react的diff算法策略,我们都知道,react为了提升渲染性能,在内部维持了一个虚拟dom,当渲染结构有所变化的时候,会在虚拟dom中先用diff算法先进行一次对比,将所有的差异化解决之后,再一次性根据虚拟dom的变化,渲染到真实的dom结构中。

所以要确保key值的唯一,事实上如果key值不唯一的话,react只会渲染第一个,剩下的react会认为是同一项,直接忽略。

在线测试:

答案:

代码语言:javascript
复制
 A. 在 React Diff 算法中 React 会借助元素的 Key 值
     来判断该元素是新近创建的还是被移动而来的元素

书中自有好图丫(首图来源于 好图丫 小程序)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 迈向前端工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档