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 find和children方法使用
Jan 31 Javascript
js获取height和width的方法说明
Jan 06 Javascript
jQuery实现自定义事件的方法
Apr 17 Javascript
Javascript节点关系实例分析
May 15 Javascript
在html中引入外部js文件,并调用带参函数的方法
Oct 31 Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 Javascript
在node中如何使用 ES6
Apr 22 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
基于input动态模糊查询的实现方法
Dec 12 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
基于javascript实现放大镜特效
Dec 03 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读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
JS获得一个对象的所有属性和方法实例
2017/02/21 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
2018/08/08 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
Python中集合类型(set)学习小结
2015/01/28 Python
Python计算字符宽度的方法
2016/06/14 Python
如何将python中的List转化成dictionary
2016/08/15 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
浅谈Django中的数据库模型类-models.py(一对一的关系)
2018/05/30 Python
python中的decorator的作用详解
2018/07/26 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
文明城市创建标语
2014/06/16 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
2016年记者节感言
2015/12/08 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
Python生成九宫格图片的示例代码
2021/04/14 Python
浅谈Python基础之列表那些事儿
2021/05/11 Python
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
Python语言规范之Pylint的详细用法
2021/06/24 Python