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

  • 淘宝怎么请好友代付(淘宝怎么请好友帮付款)

    淘宝怎么请好友代付(淘宝怎么请好友帮付款)

  • 华为手机圆点怎么取消(华为手机圆点怎么设置取消不了)

    华为手机圆点怎么取消(华为手机圆点怎么设置取消不了)

  • 笔记本1660ti和2060买哪个(笔记本1660ti和2060玩游戏对比)

    笔记本1660ti和2060买哪个(笔记本1660ti和2060玩游戏对比)

  • 三星笔记本电脑怎么连接无线网wifi(三星笔记本电脑官网)

    三星笔记本电脑怎么连接无线网wifi(三星笔记本电脑官网)

  • 华为nova5pro和荣耀20pro对比(华为nova5pro和荣耀20哪个好)

    华为nova5pro和荣耀20pro对比(华为nova5pro和荣耀20哪个好)

  • e5 1620v2性能有多强(e5 1620 e5 1620v2)

    e5 1620v2性能有多强(e5 1620 e5 1620v2)

  • 腾讯会员开了可以退款(腾讯开通了会员不能用)

    腾讯会员开了可以退款(腾讯开通了会员不能用)

  • 表格保存不了怎么办(表格保存不了是怎么回事)

    表格保存不了怎么办(表格保存不了是怎么回事)

  • 苹果手机能手写打字吗(苹果手机能手写字吗怎么设置)

    苹果手机能手写打字吗(苹果手机能手写字吗怎么设置)

  • 华为P30怎么设置应用锁(华为p30怎么设置锁屏壁纸)

    华为P30怎么设置应用锁(华为p30怎么设置锁屏壁纸)

  • 钉钉一般因为什么封号(钉钉一般因为什么停用)

    钉钉一般因为什么封号(钉钉一般因为什么停用)

  • al00a华为是什么型号(al00是华为什么型号)

    al00a华为是什么型号(al00是华为什么型号)

  • 红米note8pro电池耐用吗(红米note8Pro电池多少钱)

    红米note8pro电池耐用吗(红米note8Pro电池多少钱)

  • 微信什么是视频号(微信什么视频格式最高清)

    微信什么是视频号(微信什么视频格式最高清)

  • 小米手机突然重启咋回事(小米手机突然重启怎么办)

    小米手机突然重启咋回事(小米手机突然重启怎么办)

  • 闲鱼怎么注销实名认证(闲鱼怎么注销实体店)

    闲鱼怎么注销实名认证(闲鱼怎么注销实体店)

  • 华为无线充电器支持哪些手机(华为无线充电器27w和40w的区别)

    华为无线充电器支持哪些手机(华为无线充电器27w和40w的区别)

  • 苹果手机怎么连拍999张照片(苹果手机怎么连接华为蓝牙耳机)

    苹果手机怎么连拍999张照片(苹果手机怎么连接华为蓝牙耳机)

  • 手机设置停止运行怎么恢复正常(手机设置停止运行,怎么恢复过来?)

    手机设置停止运行怎么恢复正常(手机设置停止运行,怎么恢复过来?)

  • word文档不能修改删除(Word文档不能修改)

    word文档不能修改删除(Word文档不能修改)

  • 荣耀v20拍照有防抖功能吗(荣耀x20拍照有防抖功能吗)

    荣耀v20拍照有防抖功能吗(荣耀x20拍照有防抖功能吗)

  • 花呗二维码在哪里(花呗二维码在哪里打开)

    花呗二维码在哪里(花呗二维码在哪里打开)

  • 苹果p6尺寸多少厘米(苹果6 p尺寸)

    苹果p6尺寸多少厘米(苹果6 p尺寸)

  • 路由器冒红灯怎么办(路由器冒红灯怎么回事儿)

    路由器冒红灯怎么办(路由器冒红灯怎么回事儿)

  • 如何卸载win10自带的xbox(如何卸载win10自带浏览器)

    如何卸载win10自带的xbox(如何卸载win10自带浏览器)

  • Windows 10如何设置定时睡眠(windows10如何设置密码)

    Windows 10如何设置定时睡眠(windows10如何设置密码)

  • 金税开票软件怎么修改开票人
  • 汇算清缴需要传什么资料
  • 上个月的普票开错了怎么办
  • 房地产企业实收资本要求
  • 固定资产的入账
  • 计提个人所得税怎么计提
  • 预付开发票加油后还能开吗
  • 工程结算是含税还是不含税
  • 个税申报表中的基本养老保险怎么填
  • 其他综合收益何时转投资收益
  • 福利费属于管理费用的哪个明细
  • 工资代扣工会会费
  • 两地拿工资怎么扣个税
  • 公司给离职员工多发工资怎么办
  • 公司合并是不是先变更股权
  • 非货币性资产交换的会计处理
  • 外包代发工资怎么做账
  • 生产车间计提固定资产折旧会计科目
  • 北京建筑施工企业排名
  • 顺丰的收派服务费可以抵扣吗
  • 无形资产摊销金额计入什么科目
  • 销售营改增之后取得的固定资产
  • 物流企业的大宗商品仓储用地是什么意思
  • 以前年度已经缴纳的税
  • 期末未缴税额是负数用于抵扣如何填报
  • 增值税预缴税额可以改吗
  • 卖护肤品赚钱吗
  • 有限合伙人的投资风险有哪些
  • 按键盘不起作用怎么办
  • 苹果mac os x 怎样打开DVD播放程序
  • windows 10如何使用
  • ppt文件打不开了怎么办
  • 期末未抵扣数
  • 认证超时什么意思
  • 个人去税务局开租房发票需要缴纳多少税点
  • macOS Catalina10.15.2值得升级吗 macOS Catalina10.15.2更新了什么
  • 电脑开机无法启动怎么解决
  • 默认网关为什么有两个
  • 进口应税消费品会计分录
  • 如何做世界上最小的遥控飞机
  • php中session使用
  • 阿里云 ide
  • 宝塔面板安装zabbix
  • win10系统安装配置
  • 什么情况下可以赔偿n+1
  • php psr
  • 委托第三方收款合法吗
  • 社保公司承担部分计入哪个科目
  • 营业外收入怎么结转到本年利润
  • 深入解读何暮楚
  • mysql innode
  • 业务招待费计入其他业务成本
  • 企业分红所得需要缴纳企业所得税吗
  • 机票改签费可以报销吗
  • sql server 2008中的权限分为三类
  • sql中多条件查询
  • 电脑计入固定资产了怎么抵企业所得税
  • 住房补贴需要交个税吗
  • 对公账户收到钱都要开票吗
  • 应收款项减值讲解视频
  • 定额转查账征收
  • 合并财务报表内部往来如何抵消
  • 划拨土地使用权管理暂行办法
  • 超市的商品品种繁多琳琅满目
  • 怎样填制记账凭证表
  • sql常见的数据类型有哪些
  • mac mysql密码忘记了怎么办
  • xp系统桌面在c盘哪个位置
  • window10电话
  • win xp怎么样
  • 怎么恢复Windows xp蓝天白云壁纸
  • win8.1的ie浏览器
  • linux命令存放在哪里
  • windows安装mq
  • unity开发3a
  • messenger api
  • 批量压缩命令
  • unity安卓手机游戏官网
  • jquery日历插件代码
  • 四川电子税务局网上办税大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设