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 相关文章推荐
ext form 表单提交数据的方法小结
Aug 08 Javascript
cument.execCommand()用法深入理解
Dec 04 Javascript
js和jquery对dom节点的操作(创建/追加)
Apr 21 Javascript
详解JavaScript函数绑定
Aug 18 Javascript
window.location的重写及判断location是否被重写
Sep 04 Javascript
JS模式之单例模式基本用法
Jun 30 Javascript
js实现tab切换效果实例
Sep 16 Javascript
深入分析node.js的异步API和其局限性
Sep 05 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
Aug 23 Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
了解Javascript中函数作为对象的魅力
Jun 19 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 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
快速开发一个PHP扩展图文教程
2008/12/12 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
纯css下拉菜单 无需js
2016/08/15 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
vue.js加载新的内容(实例代码)
2017/06/01 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python随机函数random()使用方法小结
2018/04/29 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python hashlib模块实例使用详解
2019/12/24 Python
python计算二维矩形IOU实例
2020/01/18 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
python给list排序的简单方法
2020/12/10 Python
软件测试工程师结构化面试题库
2016/11/23 面试题
公司同意接收函
2014/01/13 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
单位婚育证明范本
2014/11/21 职场文书
中国世界遗产导游词
2015/02/13 职场文书
观后感的写法
2015/06/19 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis