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 JSON的解析方式
Jul 25 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
php结合imgareaselect实现图片裁剪
Jul 05 Javascript
js获取所有checkbox的值的简单实例
May 30 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
JS求解三元一次方程组值的方法
Jan 03 Javascript
javascript 正则表达式分组、断言详解
Apr 20 Javascript
JavaScript异步上传图片文件的实例代码
Jul 04 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
Sep 26 Javascript
微信小程序如何实现五星评价功能
Oct 15 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
php7基于递归实现删除空文件夹的方法示例
2017/06/15 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
JS实现的自定义网页拖动类
2015/11/06 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
AngularJS 中的指令实践开发指南(一)
2016/03/20 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
vue 需求 data中的数据之间的调用操作
2020/08/05 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
2017/11/11 Python
Python3爬虫全国地址信息
2019/01/05 Python
基于python实现高速视频传输程序
2019/05/05 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
python socket 聊天室实例代码详解
2019/11/14 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
Python同时处理多个异常的方法
2020/07/28 Python
如何在pycharm中安装第三方包
2020/10/27 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
商场中秋节活动方案
2014/02/07 职场文书
电子工程求职信
2014/07/17 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
步步惊心观后感
2015/06/12 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis