1.软文推荐

2.软文推荐

3.软文推荐

React是一款颠覆式的前端解决方案,其创新的编程思想以及衍生出来的一些生态圈技术可以说是引领了整个前端的发展。

我们可以使用 JavaScript 的 map() 方法来创建列表。

React 实例

使用 map() 方法遍历数组生成了一个 1 到 5 的数字列表:

const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((numbers) =>
  {numbers}
);
 
ReactDOM.render(
  {listItems},
  document.getElementById('example')
);

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

React 实例

function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    
      {number}
    
  );
  return (
    {listItems}
  );
}
 
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
  ,
  document.getElementById('example')
);
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}
  
);

如果列表可以重新排序,我们不建议使用索引来进行排序,因为这会导致渲染变得很慢。

用keys提取组件

元素的 key 只有在它和它的兄弟节点对比时才有意义。

比方说,如果你提取出一个 ListItem 组件,你应该把 key 保存在数组中的这个 元素上,而不是放在 ListItem 组件中的

元素上。
错误的示范
function ListItem(props) {
  const value = props.value;
  return (
    // 错啦!你不需要在这里指定key:
    
      {value}
    
  );
}

function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    //错啦!元素的key应该在这里指定:
    
  );
  return (
    
      {listItems}
    
  );
}

const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
  ,
  document.getElementById('example')
);
key的正确使用方式

React 实例

function ListItem(props) {
  // 对啦!这里不需要指定key:
  return {props.value};
}
 
function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    // 又对啦!key应该在数组的上下文中被指定
    
 
  );
  return (
    
      {listItems}
    
  );
}
 
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
  ,
  document.getElementById('example')
);

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

元素的 key 在他的兄弟元素之间应该唯一

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

React 实例

function Blog(props) {
  const sidebar = (
    
      {props.posts.map((post) =>
        
          {post.title}
        
      )}
    
  );
  const content = props.posts.map((post) =>
    
      {post.title}
      

{post.content}

       );   return (            {sidebar}       
      {content}        ); }   const posts = [   {id: 1, title: 'Hello World', content: 'Welcome to learning React!'},   {id: 2, title: 'Installation', content: 'You can install React from npm.'} ]; ReactDOM.render(   ,   document.getElementById('example') );

key 会作为给 React 的提示,但不会传递给你的组件。如果您的组件中需要使用和 key 相同的值,请将其作为属性传递:

const content = posts.map((post) =>
  
);

上面例子中,Post 组件可以读出 props.id,但是不能读出 props.key。

在 jsx 中嵌入 map()

在上面的例子中,我们声明了一个单独的 listItems 变量并将其包含在 JSX 中:

function NumberList(props) {
  const numbers = props.numbers;
  const listItems = numbers.map((number) =>
    

  );
  return (
    
      {listItems}
    
  );
}

JSX 允许在大括号中嵌入任何表达式,所以我们可以在 map() 中这样使用:

React 实例

function NumberList(props) {
  const numbers = props.numbers;
  return (
    
      {numbers.map((number) =>
        
 
      )}
    
  );
}

这么做有时可以使你的代码更清晰,但有时这种风格也会被滥用。就像在 JavaScript 中一样,何时需要为了可读性提取出一个变量,这完全取决于你。但请记住,如果一个 map() 嵌套了太多层级,那你就可以提取出组件。

本文来源:www.lxlinux.net/9028.html,若引用不当,请联系修改。

相关文章 8

1

韩国vps有哪些好处(韩国vps有哪些好处呢) 1分钟前

目录:1、vps韩国uplus线路好吗2、使用VPS的好处是什么?3、日本vps和韩国vps哪个延迟vps韩国uplus线路好吗 非常不错,韩国vps做为距离中国近的...

2

通过 Linux 命令行工具来了解你的 NVMe 驱动器 2分钟前

nvme-cli 命令拥有诸多实用的选项,且它是控制和管理数据一种很好的方式。 NVMe 是指非易失性内存规范,它规范了软件和存储通过 PCIe 和其...

4

Http在什么场景下发生options请求? 7分钟前

HTTP 的 OPTIONS 方法 用于获取目的资源所支持的通信选项。客户端可以对特定的 URL 使用 OPTIONS 方法,也可以对整站(通过将 URL 设置为*)使用...

5

MySQL 数据库的安装不管是对于开发者还是对于运维人员来说,都是必然需要面对的问题; 9分钟前

基于这种现象,本文详细介绍了 MySQL 安装的完成过程,小伙伴们看完记得收藏哦!(^_^) 本文安装的版本为 mysql-8.0.20 ,其他版本的安装也类...

6

日本CN2服务器(美国cn2服务器) 11分钟前

目录:1、日本站群服务器,日本多IP服务器,哪家性价比最好,便宜的?2、推荐几款国外服务器3、apex日服数据中心选哪个4、新加坡服务器...

7

Linux系统shell脚本基础教程 13分钟前

在Linux系统中shell脚本也像解释器一样,但它通常用于调用外部已编译的程序。然后,它会捕获输出结果、退出代码并根据情况进行处理,下...