位置: 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图片放在哪里)

  • 移动宽带怎么更换户主(移动宽带怎么更改密码手机上怎么改)

    移动宽带怎么更换户主(移动宽带怎么更改密码手机上怎么改)

  • iphonex储存空间其他是什么(iphonex储存空间加载慢)

    iphonex储存空间其他是什么(iphonex储存空间加载慢)

  • 有锁机可以升级ios13吗(有锁机可以升级5g吗)

    有锁机可以升级ios13吗(有锁机可以升级5g吗)

  • qq屏幕分享可以用耳机吗(qq屏幕分享可以用obs吗)

    qq屏幕分享可以用耳机吗(qq屏幕分享可以用obs吗)

  • 苹果手机12上市了吗(苹果手机12上市时间)

    苹果手机12上市了吗(苹果手机12上市时间)

  • .tt是什么域名(tm域名)

    .tt是什么域名(tm域名)

  • 华为nova6刷新率(华为高刷新率手机)

    华为nova6刷新率(华为高刷新率手机)

  • 淘宝评分红色和灰色有什么区别(淘宝评分红色和绿色有什么区别)

    淘宝评分红色和灰色有什么区别(淘宝评分红色和绿色有什么区别)

  • qq设备锁关了还是要验证(qq设备锁关了为什么还是不能登)

    qq设备锁关了还是要验证(qq设备锁关了为什么还是不能登)

  • 三星s10下巴宽度多少毫米(三星s105g下巴宽度)

    三星s10下巴宽度多少毫米(三星s105g下巴宽度)

  • 9700和9700f的区别(9700f对比9700kf)

    9700和9700f的区别(9700f对比9700kf)

  • 手机好久没用了无法充电无法开机怎么办(手机好久没用了充不进电)

    手机好久没用了无法充电无法开机怎么办(手机好久没用了充不进电)

  • 抖音可以加水印吗(抖音加水印在哪里设置)

    抖音可以加水印吗(抖音加水印在哪里设置)

  • 文件管理里面的东西删除了可以找回吗(文件管理里面的文件哪些可以删除)

    文件管理里面的东西删除了可以找回吗(文件管理里面的文件哪些可以删除)

  • 快手属于哪个公司旗下(快手属于哪个公司旗下产品)

    快手属于哪个公司旗下(快手属于哪个公司旗下产品)

  • vivo手机传歌到mp3(vivo手机传歌到mp3怎么传)

    vivo手机传歌到mp3(vivo手机传歌到mp3怎么传)

  • 一加7t发布时间(一加7T发布时间)

    一加7t发布时间(一加7T发布时间)

  • 微信横屏模式是什么(微信横屏模式是啥意思)

    微信横屏模式是什么(微信横屏模式是啥意思)

  • 怎么在表格里查找内容(怎么在表格里查找数据有几个)

    怎么在表格里查找内容(怎么在表格里查找数据有几个)

  • 美团评论第二天才能看到吗(美团评论第二天才能看到怎么开启歇业保护)

    美团评论第二天才能看到吗(美团评论第二天才能看到怎么开启歇业保护)

  • 手机qq好友亲密度怎么涨(手机qq好友亲密度怎么关闭)

    手机qq好友亲密度怎么涨(手机qq好友亲密度怎么关闭)

  • 苹果xsmax有无线充电功能吗(苹果xsmax有无线充电功能吗?)

    苹果xsmax有无线充电功能吗(苹果xsmax有无线充电功能吗?)

  • creator是什么牌子(creation牌子)

    creator是什么牌子(creation牌子)

  • 怎样查找qq聊天删除的记录(怎样查找qq聊天撤回的图片)

    怎样查找qq聊天删除的记录(怎样查找qq聊天撤回的图片)

  • 深度学习部署(十九): CUDA RunTime API YOLOV5后处理cpu解码以及gpu解码

    深度学习部署(十九): CUDA RunTime API YOLOV5后处理cpu解码以及gpu解码

  • 增值税为什么不重复征税
  • 集体房屋出租管理办法
  • 一般纳税人商品混凝土税率
  • 季度报税是哪几个月几号申报
  • 定额怎么确定
  • 长期应付款是什么科目 借方
  • 促销费可以开专票吗
  • 远期采购合同会查吗
  • 专用发票丢失怎么抵扣
  • 固定资产盘盈盘亏的会计科目
  • 无形资产的使用
  • 住房公积金部分业务暂停办理
  • 多付车款退回怎么做账
  • 计提个税会计分录怎么理解
  • 股票投资及收益计算公式
  • 没有银行回单用明细账可以做账吗
  • 培训相关的场地租赁费可以列入职工教育经费税前扣除吗?
  • 保安服务费差额征税如何计算税额
  • 建筑业增值税税率11变为10
  • 实收资本印花税是一年一交吗
  • 上月开票次月开红票销项税额有什么影响?
  • 滞纳金属于罚没支出还是其他
  • 增值税票查无此票是什么原因
  • 其他货币资金的概念
  • 技术服务合同增值税免税吗
  • 公司支付劳务派遣人员工资账务处理
  • 业务招待费在税法上的规定
  • 利润表有盈利能力吗
  • 电子承兑如何转出换成现金
  • 4s店 监管
  • 公司贷款收入如何计算
  • Win11如何解决界面不断刷新 Win11界面不断刷新解决方法
  • windows 7如何
  • 财务决算报表是谁编制的
  • 第三方开发是什么意思
  • macbookair怎么设置屏幕
  • PHP clearstatcache()函数详解
  • 新公司成立股份比例
  • 运输发票符合什么要求
  • php文件上传用什么请求方法
  • yolov5使用
  • yolov3图像识别
  • 【Spring+SpringMVC+Mybatis】Spring+SpringMVC+Mybatis实现前端到后台完整项目
  • 结构重参数化2d pose
  • 帝国cms使用手册
  • 抵债资产怎么入账
  • LVS负载均衡群集的常用调度算法包含哪几种?
  • 工会经费的会计分录2022
  • 不认证的发票可以作废吗
  • access导入到mysql
  • 母公司持有子公司70%股权
  • 计入固定资产和费用的区别
  • 小规模普通发票怎么做分录
  • 天猫账房怎么进去
  • 购入需安装设备的会计分录
  • 财产转让按什么计征
  • 预付工程款会计分录
  • 出口应纳增值税
  • 废料进口报关
  • 购买员工福利品会计分录
  • 开1000的增值税发票要交多少税
  • 已认证发票退回说明模板
  • 结转费用时财务费用为负
  • 销售成本包括销项税额吗
  • 费用分析的作用
  • freebsd版本选择
  • u盘安装win7视频教程
  • 如何禁用u盘启动项
  • 强制升级win11后果
  • ext.grid.gridpanel
  • 批处理 重命名
  • jquery 操作json
  • mysql数据表复制
  • js 小数取整的函数怎么写
  • JavaScript bold方法入门实例(把指定文字显示为粗体)
  • 国家税务系统电子税务局电话
  • 新疆干部在线网络平台登录
  • 出口退税是否缴纳所得税
  • 企业所得税的改革与完善
  • 如何落实保密制度规定措施
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设