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实现的鼠标链接提示效果生成器代码
Jun 28 Javascript
广告切换效果(缓动切换)
May 27 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
javascript显示用户停留时间的简单实例
Aug 05 Javascript
基于js实现投票的实例代码
Aug 04 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
vue2.0之多页面的开发的示例
Jan 30 Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 Javascript
layui多iframe页面控制定时器运行的方法
Sep 05 Javascript
js实现select下拉框选择
Jan 11 Javascript
vue编写简单的购物车功能
Jan 08 Vue.js
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
在普通HTTP上安全地传输密码
2007/07/21 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
用JavaScript将从数据库中读取出来的日期型格式化为想要的类型。
2009/08/15 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
js实现拖拽上传图片功能
2017/08/01 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
python3.x上post发送json数据
2018/03/04 Python
python版本五子棋的实现代码
2018/12/11 Python
python 常见的反爬虫策略
2020/09/27 Python
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
个人生活学习自我评价范文
2013/11/26 职场文书
淘宝网店营销策划书
2014/01/11 职场文书
骨干教师培训感言
2014/01/16 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
公司授权委托书范本
2014/09/18 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
校园新闻广播稿5篇
2014/10/10 职场文书
社区服务活动感想
2015/08/11 职场文书