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 同时提交多个Web表单的方法
Feb 19 Javascript
jquery 图片缩放拖动的简单实例
Jan 08 Javascript
jquery日历控件实现方法分享
Mar 07 Javascript
js控制当再次点击按钮时的间隔时间
Jun 03 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
Sep 04 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 Javascript
javascript每日必学之多态
Feb 23 Javascript
JavaScript实现星级评分
Jan 12 Javascript
CodeMirror js代码加亮使用总结
Mar 25 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
Jun 22 Javascript
Node.js 使用AngularJS的方法示例
May 11 Javascript
原生javascript自定义input[type=radio]效果示例
Aug 27 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数据库的查询统计速度 select 索引应用
2007/04/11 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
基于JavaScript实现的折半查找算法示例
2017/04/14 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
react-native-tab-navigator组件的基本使用示例代码
2017/09/07 Javascript
vue跨域解决方法
2017/10/15 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
详解vue 数据传递的方法
2018/04/19 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
Python内置模块logging用法实例分析
2018/02/12 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
三下乡活动方案
2014/01/31 职场文书
安全生产管理责任书
2014/04/16 职场文书