首页 > 其他 > 详细

react 列表 key

时间:2019-10-28 00:41:42      阅读:86      评论:0      收藏:0      [点我收藏+]

key

key 帮助 React 识别哪些元素改变了,比如添加和删除。因此应当给数组中的每个元素赋予一个确定的标志

  • 一个元素的 key 最好是这个元素在列表中拥有独一无二的字符串
  • 当元素没有确定的 id 的时候,可以使用元素索引 index 作为 key
  • 如果列表项目的顺序可能会变化,不建议使用索引作为key值,这样做会导致性能变差,还可能会引起组件状态的问题

一、用key提取组件

  • 元素的key只有放在就近的数组上下文才有意义

提取出一个ListItem组件,应该把key保留在数组中的<ListItem/>元素上,而不是放在ListItem组件中的<li>元素上

function ListItem(props) {
  // 正确!这里不需要指定 key:
  return <li>{props.value}</li>;
}

function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    // 正确!key 应该在数组的上下文中被指定
    <ListItem key={number.toString()}
              value={number} />

  );
  return (
    <ul>
      {listItems}
    </ul>
  );
}

const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
  <NumberList numbers={numbers} />,
  document.getElementById('root')
);

二、注意

  • key只是在兄弟节点之间必须唯一

数组元素中使用的key在其兄弟节点之间应该时独一无二的,但是它们不需要全局唯一,当生成两个不同的数组时,可以使用相同的key值

  • key传递信息给react,但不会传递给组件
  • 如果一个 map() 嵌套了太多层级,那可能就是你提取组件的一个好时机

react 列表 key

原文:https://www.cnblogs.com/let423/p/11749809.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!