位置: IT常识 - 正文

React基础-JSX语法列表渲染详解(react js 教程)

编辑:rootadmin
React基础-JSX语法列表渲染详解 React列表渲染

推荐整理分享React基础-JSX语法列表渲染详解(react js 教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:react用法总结,react详解,react 语法,react.js教程,react基础入门,react的语法,js react,react用法总结,内容如对您有帮助,希望把文章链接给更多的朋友!

真实开发中我们会从服务器请求到大量的数据,数据会以列表的形式存储:

比如歌曲、歌手、排行榜列表的数据;

比如商品、购物车、评论列表的数据;

比如好友消息、动态、联系人列表的数据;

在React中并没有像Vue模块语法中的v-for指令,而且需要我们通过JavaScript代码的方式组织数据,转成JSX:

很多从Vue转型到React的小伙伴非常不习惯,认为Vue的方式更加的简洁明了;

React基础-JSX语法列表渲染详解(react js 教程)

但是React中的JSX正是因为和JavaScript无缝的衔接,让它可以更加的灵活;

另外我经常会提到React是真正可以提高我们编写代码能力的一种方式;

如何展示列表呢?

在React中,展示列表最多的方式就是使用数组的map高阶函数;

class App extends React.Component { constructor() { super() this.state = { students: [ {name: "aaa", age: 18, score: 99, id: 101}, {name: "bbb", age: 19, score: 88, id: 102}, {name: "ccc", age: 17, score: 77, id: 103}, {name: "ddd", age: 17, score: 98, id: 104} ] } } render() { const { students } = this.state return ( <div> { students.map(stu => { return( <div key={stu.id}> <h3>学号: {stu.name}</h3> <h3>年龄: {stu.age}</h3> <h3>成绩: {stu.score}</h3> </div> ) }) } </div> ) }}const app = ReactDOM.createRoot(document.querySelector("#app"))app.render(<App/>)

很多时候我们在展示一个数组中的数据之前,需要先对它进行一些处理:

比如过滤掉一些内容:filter函数; 例如上面代码中, 要求展示学生分数大于80的

class App extends React.Component { constructor() { super() this.state = { students: [ {name: "aaa", age: 18, score: 99, id: 101}, {name: "bbb", age: 19, score: 88, id: 102}, {name: "ccc", age: 17, score: 77, id: 103}, {name: "ddd", age: 17, score: 98, id: 104} ] } } render() { const { students } = this.state // 对数组过滤再遍历 const filterStudents = students.filter(item => { return item.score > 80 }) return ( <div> { filterStudents.map(stu => { return( <div key={stu.id}> <h3>学号: {stu.name}</h3> <h3>年龄: {stu.age}</h3> <h3>成绩: {stu.score}</h3> </div> ) }) } </div> ) }}const app = ReactDOM.createRoot(document.querySelector("#app"))app.render(<App/>)

比如截取数组中的一部分内容:slice函数, 例如上面代码中, 要求截取数组的前两条进行展示

class App extends React.Component { constructor() { super() this.state = { students: [ {name: "aaa", age: 18, score: 99, id: 101}, {name: "bbb", age: 19, score: 88, id: 102}, {name: "ccc", age: 17, score: 77, id: 103}, {name: "ddd", age: 17, score: 98, id: 104} ] } } render() { const { students } = this.state // 对数组截取再遍历 const spliceStudents = students.splice(0,2) return ( <div> { spliceStudents.map(stu => { return( <div key={stu.id}> <h3>学号: {stu.name}</h3> <h3>年龄: {stu.age}</h3> <h3>成绩: {stu.score}</h3> </div> ) }) } </div> ) }}const app = ReactDOM.createRoot(document.querySelector("#app"))app.render(<App/>)

上面的操作先过滤, 再截取, 最后进行遍历, 其实可以通过链式调用一行代码完成

class App extends React.Component { constructor() { super() this.state = { students: [ {name: "aaa", age: 18, score: 99, id: 101}, {name: "bbb", age: 19, score: 88, id: 102}, {name: "ccc", age: 17, score: 77, id: 103}, {name: "ccc", age: 17, score: 77, id: 103}, {name: "ddd", age: 17, score: 98, id: 104} ] } } render() { const { students } = this.state return ( <div> {/* 链式调用, 一步操作完成 */} { students.filter(item => item.score > 80).splice(0, 2).map(stu => { return( <div key={stu.id}> <h3>学号: {stu.name}</h3> <h3>年龄: {stu.age}</h3> <h3>成绩: {stu.score}</h3> </div> ) }) } </div> ) } } const app = ReactDOM.createRoot(document.querySelector("#app")) app.render(<App/>)

我们会发现在前面的代码中如果没有绑定key就会会报一个警告, 这个警告是告诉我们需要在列表展示的jsx中添加一个key

key主要的作用是为了提高diff算法时的效率;

本文链接地址:https://www.jiuchutong.com/zhishi/298709.html 转载请保留说明!

上一篇:Vite4 + Vue3 + vue-router4 动态路由

下一篇:Vue显示图片的几种方式(vue图片放在哪里)

  • 推广不挨“踢”,QQ群推广防踢技巧(推广不懂)

    推广不挨“踢”,QQ群推广防踢技巧(推广不懂)

  • oppok9s怎么录屏(oppok9录屏怎么录声音)

    oppok9s怎么录屏(oppok9录屏怎么录声音)

  • 手机上可以买彩票吗?怎么买呢(手机上可以买彩票刮刮乐吗)

    手机上可以买彩票吗?怎么买呢(手机上可以买彩票刮刮乐吗)

  • 小米盒子遥控器怎么配对(小米盒子遥控器失灵手动修复教程)

    小米盒子遥控器怎么配对(小米盒子遥控器失灵手动修复教程)

  • 抖音图文怎么设置不能下载(抖音图文怎么设置封面)

    抖音图文怎么设置不能下载(抖音图文怎么设置封面)

  • 小米mix3小窗口模式在哪设置(小米mix3小窗口怎么打开)

    小米mix3小窗口模式在哪设置(小米mix3小窗口怎么打开)

  • 苹果xs突然不能向上划屏解锁(苹果xs突然不能快充)

    苹果xs突然不能向上划屏解锁(苹果xs突然不能快充)

  • 苹果手机照片上如何显示时间(苹果手机照片上传到icloud占内存吗)

    苹果手机照片上如何显示时间(苹果手机照片上传到icloud占内存吗)

  • 华为p40新机的膜要撕掉吗(华为p40新机自带膜)

    华为p40新机的膜要撕掉吗(华为p40新机自带膜)

  • word查找替换快捷键是什么(word快速查找替换快捷键)

    word查找替换快捷键是什么(word快速查找替换快捷键)

  • 淘宝长时间不发货怎么赔偿(淘宝长时间不发货怎么办)

    淘宝长时间不发货怎么赔偿(淘宝长时间不发货怎么办)

  • 视频上传转码需要多久(视频转码需要网络吗)

    视频上传转码需要多久(视频转码需要网络吗)

  • 华为荣耀play4t pro返回键怎么设置(华为荣耀play4tpro手机参数)

    华为荣耀play4t pro返回键怎么设置(华为荣耀play4tpro手机参数)

  • 拍抖音为什么是黑白的(为什么拍抖音画面不清晰)

    拍抖音为什么是黑白的(为什么拍抖音画面不清晰)

  • 美版卡贴机什么意思(美版卡贴机什么时候会出现黑点)

    美版卡贴机什么意思(美版卡贴机什么时候会出现黑点)

  • 三星s10+耳机型号(三星s10耳机参数)

    三星s10+耳机型号(三星s10耳机参数)

  • gif怎么渐变(动态渐变图)

    gif怎么渐变(动态渐变图)

  • 京东必购码怎么弄(京东必购码怎么绑定)

    京东必购码怎么弄(京东必购码怎么绑定)

  • 南方cass怎么标注距离(南方cass怎么标注坐标)

    南方cass怎么标注距离(南方cass怎么标注坐标)

  • 快手戳一下怎么取消(快手戳一下怎么取消戳过的人)

    快手戳一下怎么取消(快手戳一下怎么取消戳过的人)

  • 如何利用pr做片头(pr制作影片的基本流程)

    如何利用pr做片头(pr制作影片的基本流程)

  • iphonexr支持30w快充吗(iphonexr支持10w)

    iphonexr支持30w快充吗(iphonexr支持10w)

  • 小米4手环怎么绑定手机(小米4手环怎么恢复出厂模式)

    小米4手环怎么绑定手机(小米4手环怎么恢复出厂模式)

  • 抖音怎么制作相片视频(抖音怎么制作相册视频教程)

    抖音怎么制作相片视频(抖音怎么制作相册视频教程)

  • 啥叫免抵税额
  • 一般纳税企业所得税税率是多少2019
  • 两处以上取得工资如何交社保
  • 城市维护建设税是什么意思
  • 库存商品余额在借方
  • 广告制作要交文化部门吗
  • 生产性资金是生产资料吗
  • 事业单位存货发生盘亏或盘盈处理
  • 个人自产自销农产品免税政策
  • 剩余折旧月份
  • 进口免税店的东西都是正品吗
  • 工程发票开多了怎么办
  • 品种法完工产品成本的单位成本怎么算
  • 计提所得税是在结转12月损益之前还是之后
  • 出口收取佣金要开发票吗?
  • 增值税发票系统金税盘发票怎么抵扣
  • 资产负债表其他应付款包括哪些
  • 公司停产检修2天扣年假
  • 招投标费用如何收取
  • 王者荣耀怎么解除关系
  • 有限责任公司出资方式有哪些
  • 银行对账单怎么修改
  • 大理石横切面
  • 抵扣联和发票联丢失怎么办
  • php 跨域
  • 发生广告费的会计分录
  • upf命令
  • 金蝶销售明细查不出来
  • 小规模增值税减征额怎么算
  • 车船使用税代征手续费
  • 终止经营列报的相关表述
  • 上个月没有清卡在其他地区税务
  • sql中聚合函数的用法
  • 费用没有发票先开什么
  • 企业消费税应计入资产成本的有哪些
  • 汇算清缴职工教育经费
  • 矿场维护
  • 去年企业所得税多计提怎么调整
  • 失业领取社保补贴怎么领
  • 公允价值变动损益在利润表哪里
  • 出售金融商品的增值税计税依据
  • 报销运输费用
  • 货样广告品出口如何申报
  • 应交税费减免税额在借方还是贷方
  • 盘亏和报废报损的区别
  • 关于新修订的未保法
  • 企业进口外汇额度限制
  • 办土地证费用会退吗
  • 被征用的不动产或者动产使用后应当怎样
  • 施工企业应收账款确认依据
  • 企业公司制改建的有关规定
  • sql中的递归
  • mssql insert into 和insert into select性能比较
  • Vista、XP、Windows7下非会员如何去除QQ2009的广告
  • solaris命令大全
  • 一键u盘安装系统
  • linux nmap扫描端口
  • 为什么window10容易发热
  • linux服务器常用操作命令
  • win7 虚拟磁盘
  • 铁嘴银牙剧情简介
  • unity3d documentation
  • ExtJS4中的requires使用方法示例介绍
  • HTML:scrollLeft,scrollWidth,clientWidth,offsetWidth完全详解
  • python基础开发
  • js的异步解决方案有哪些
  • js弹出提示窗口
  • jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
  • js定时器有哪些,区别及用法
  • Unity multiplayer
  • android fragmentation
  • 佛山电子税务
  • 浦东税务15所
  • 个人意外所得税税率
  • 对税务巡视工作的意见
  • 在税盘上怎么申请电子发票
  • 登录电子税务局的方式
  • 重庆国税网上怎么申报
  • 长途汽车车次号
  • 税务系统绩效管理首要目标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设