React 列表 与 Keys(十)

参考文档:
react随笔7 列表&Keys
React 列表 & Keys

1、React列表的创建

采用JavaScript 中的map() 方法来创建列表。
以下HTML是使用 map() 方法遍历数组生成了一个 1 到 5 的数字列表:





React 实例





我们可以将以上实例重构成一个组件,组件接收数组参数,每个列表元素分配一个 key,不然会出现警告 a key should be provided for list items,意思就是需要包含 key:





React 实例





2、React中的Keys

  • Keys 可以在 DOM 中的某些元素被增加或删除的时候帮助 React 识别哪些元素发生了变化。因此你应当给数组中的每一个元素赋予一个确定的标识。
const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) =>
  
  • {number}
  • );
    • 一个元素的 key 最好是这个元素在列表中拥有的一个独一无二的字符串。通常,我们使用来自数据的 id 作为元素的 key:
    const todoItems = todos.map((todo) =>
      
  • {todo.text}
  • );
    • 当元素没有确定的 id 时,你可以使用他的序列号索引 index 作为 key:
    const todoItems = todos.map((todo, index) =>
      // 只有在没有确定的 id 时使用
      
  • {todo.text}
  • );

    3、用keys提取组件

    元素的 key 只有在它和它的兄弟节点对比时才有意义。
    比方说,如果你提取出一个 ListItem 组件,你应该把 key 保存在数组中的这个 元素上,而不是放在 ListItem 组件中的

  • 元素上。

    
    
    
    
    React 实例
    
    
    
    
    
    

    当你在 map() 方法的内部调用元素时,你最好随时记得为每一个元素加上一个独一无二的 key

    
    
    
    
    React 实例
    
    
    
    
    
    

    4、在 jsx 中嵌入 map()

    
    
    
    
    React 实例
    
    
    
    
    
    
  • 你可能感兴趣的:(React)