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 相关文章推荐
JavaScript 封装Ajax传递的数据代码
Jun 05 Javascript
javascript 拖动表格行实现代码
May 05 Javascript
查看源码的工具 学习jQuery源码不错的工具
Dec 26 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
JS实现的页面自定义滚动条效果
Oct 26 Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 Javascript
Bootstrap字体图标无法正常显示的解决方法
Oct 08 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
Vue-Access-Control 前端用户权限控制解决方案
Dec 01 Javascript
jquery实现购物车基本功能
Oct 25 jQuery
JS实现简单打字测试
Jun 24 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
基于mysql的论坛(7)
2006/10/09 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
小程序根据手机机型设置自定义底部导航距离
2019/06/04 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
Python中用altzone()方法处理时区的教程
2015/05/22 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
基于python的七种经典排序算法(推荐)
2016/12/08 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
python 字符串常用函数详解
2019/09/11 Python
python能做什么 python的含义
2019/10/12 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
pyqt5中动画的使用详解
2020/04/01 Python
浅谈python 调用open()打开文件时路径出错的原因
2020/06/05 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
文明青少年标兵事迹材料
2014/01/28 职场文书
三八妇女节趣味活动方案
2014/08/23 职场文书
高一军训决心书
2015/02/05 职场文书
国际贸易实训总结
2015/08/03 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js