react 中为什么在数组遍历时要给一个key值
2018-03-22 18:58
316 查看
this.state={
var arr = [ a , b , c , d ];
}
//组件中
this.state.arr.map((item,index,arr)=>{
return <li key={item.index}>//一般建议给一个能够保证唯一和稳定的键值,最好不要用索引。
{item}
</li>
})
解释:因为react中渲染dom是通过render方式,也就是通过虚拟的dom与真实的存在的dom树比较之后发现哪不一样,再进行渲染,这样的渲染对于性能的提升很有帮助,所以键值在保证稳定性,唯一性的时候,在遍历寻找需要改变的地方时候就能很块的找见并对其进行操作,如果键值不是稳定的而是变化的就会使渲染更改dom的效率大大的打折。
附:https://reactjs.org/docs/reconciliation.html#recursing-on-children
var arr = [ a , b , c , d ];
}
//组件中
this.state.arr.map((item,index,arr)=>{
return <li key={item.index}>//一般建议给一个能够保证唯一和稳定的键值,最好不要用索引。
{item}
</li>
})
解释:因为react中渲染dom是通过render方式,也就是通过虚拟的dom与真实的存在的dom树比较之后发现哪不一样,再进行渲染,这样的渲染对于性能的提升很有帮助,所以键值在保证稳定性,唯一性的时候,在遍历寻找需要改变的地方时候就能很块的找见并对其进行操作,如果键值不是稳定的而是变化的就会使渲染更改dom的效率大大的打折。
附:https://reactjs.org/docs/reconciliation.html#recursing-on-children
相关文章推荐
- 得到一个数组的所有key
- python字典分别按照key和value升序或者降序排列--以给定一个含有重复元素的数组list,按照其出现次数大小降序输出
- php将两个不同长度数组相同的key合并到一个数组,不同的key也合并进去
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- php数组的遍历讲解 for foreach list each key
- Flex中利用Array类中的every()事件循环遍历一个数组的例子(ActionScript 3.0)
- 一个可以遍历数组的所有排列的小代码
- PHP 获取数组任意下标key的上一个prev和下一个next下标值
- 一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问要找到指定坐标的结构除了遍历整个数组还有更好的办法吗?
- Map通过map.keyset或者Map.Entry遍历;map多个value对应一个key,逆向转成一个key对应一个list;通过邮编查多个地名
- params 数组参数的解读 为什么:对于 params 只能在一个参数列表中使用一次 并且要放到最后
- 一个关于遍历文件夹下的文件内容,遍历Map的key和value的例子
- iOS 多个线程对数组操作(遍历,插入,删除),实现一个线程安全的NSMutabeArray
- 分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- 动态规划开始的开始(为什么要用一个数组而不是两个)
- list 直接输出为什么是一个数组?
- 获取一个文件$view,一个参数数组$param,将数组中的key对应的值-->赋值于$view文件中的变量
- 二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是二叉搜索树的后序遍历序列
- php如何遍历一个复杂的多维数组