React学习笔记之列表渲染示例详解


Posted in Javascript onAugust 22, 2017

前言

本文主要给大家介绍了关于React列表渲染的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

示例详解:

列表渲染也很简单,利用map方法返回一个新的渲染列表即可,例如:

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

基础列表组件的构造中,有一个重要的属性值key需要你进行指定,这个很重要,和帮助框架进行性能优化有关,具体深入原因后续会继续了解,先来看例子:

function NumberList(props) { 
 const numbers = props.numbers;
 const listItems = numbers.map((number) =>
 <li key={number.toString()}>
  {number}
 </li>
 );
 return (
 <ul>{listItems}</ul>
 );
}

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

需要注意的是key的指定需要是其值是唯一的,因为它能帮助框架更好的识别列的改变,添加和删除,如果有稳定的唯一键值就使用唯一键值,如果没有可以使用index来进行标识,但是不提倡在列表会进行频繁排序的时候使用index,因为这样会使得性能下降。

例如:

const todoItems = todos.map((todo) => 
 <li key={todo.id}>
 {todo.text}
 </li>
);
const todoItems = todos.map((todo, index) => 
 // Only do this if items have no stable IDs
 <li key={index}>
 {todo.text}
 </li>
);

出来以上用map构造好列表外,map的语法还可以内嵌到jsx语法中,只要加上{}即可,写法多种多样,可以选一种自己顺眼的哦,呵呵哒。

例如以下两种写法是一样滴:

function NumberList(props) { 
 const numbers = props.numbers;
 const listItems = numbers.map((number) =>
 <ListItem key={number.toString()}
    value={number} />
 );
 return (
 <ul>
  {listItems}
 </ul>
 );
}

function NumberList(props) { 
 const numbers = props.numbers;
 return (
 <ul>
  {numbers.map((number) =>
  <ListItem key={number.toString()}
     value={number} />
  )}
 </ul>
 );
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery 注意事项 与原因分析
Apr 24 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
Jquery replace 字符替换实现代码
Dec 02 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
jquery中checkbox使用方法简单实例演示
Nov 24 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
Aug 09 Javascript
js构造函数创建对象是否加new问题
Jan 22 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
webpack@v4升级踩坑(小结)
Oct 08 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
解决vue自定义全局消息框组件问题
Nov 22 Javascript
bootstrap switch开关组件使用方法详解
Aug 22 #Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
Aug 22 #Javascript
jQuery实现广告条滚动效果
Aug 22 #jQuery
基于jQuery的表单填充实例
Aug 22 #jQuery
JS倒计时实例_天时分秒
Aug 22 #Javascript
老生常谈javascript的面向对象思想
Aug 22 #Javascript
使用jQuery实现简单的tab框实例
Aug 22 #jQuery
You might like
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
session 加入redis的实现代码
2016/07/15 PHP
Laravel 实现数据软删除功能
2019/08/21 PHP
document.all与WEB标准
2020/05/13 Javascript
新手入门常用代码集锦
2007/01/11 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
Vue异步组件处理路由组件加载状态的解决方案
2018/09/07 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
详解Python中的条件判断语句
2015/05/14 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
QML使用Python的函数过程解析
2019/09/26 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
python高级特性简介
2020/08/13 Python
HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
2017/08/18 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
代办委托书怎样写
2014/04/08 职场文书
保密工作目标责任书
2014/07/28 职场文书
春节超市活动方案
2014/08/14 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
医德医风个人总结
2015/02/28 职场文书
银行大堂经理培训心得体会
2016/01/09 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
使用javascript解析二维码的三种方式
2021/11/11 Javascript
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL