将普通字符串数组,转为jsx数组并渲染到页面上

简介: 将普通字符串数组,转为jsx数组并渲染到页面上

将普通字符串数组,转为jsx数组并渲染到页面上

 

一、将普通字符串数组,转为jsx数组并渲染到页面上的两种方式和实际操作

 

将字符串数组的每一项用标签包起来

 

方案1:手动在外部进行for循环:foreach

 

示例代码:

//1.导入包

import React from 'react'

import ReactDOM from 'react-dom'

 

const h1 = <h1>红红火火开开心心</h1>    //不要把它想象成标签,这是一个js对象

const arr =[       // jsx元素数组,每一项看成一个对象

   <h2>这是h2</h2>,

   <h3>这是h3</h3>

]

 

const arrStr = ['毛利兰','柯南','小五郎',’灰原哀’] //循环里面的每一项名称,将每一项名称用一个标签将其包起来

//这是一个普通的数组

//将这四个字符串名称都放到一个h5标签中,然后渲染到页面上

//定义一个空数组,将来用来存放名称标签

const nameArr = []

arrStr.forEach(item =>{  //item代表每一项

   const temp = <h5>{item}</h5> //将每一项名称包裹到h5

   nameArr.push(temp)

})

 

// 3. 使用render函数渲染 jsx xml html 严格多了

//总结:什么情况下需要使用 {} 呢? 当我们需要在 JSX 控制的区域内,写JS表达式,则需要把 JS代码写到 {}

ReactDOM.render(<div>

 

 {arrStr}

 {nameArr}

</div>, document.getElementById('app'))

 

如果直接把字符串放到页面上,则会出现如下效果:

image.png

只会出现4个字符串,没有意义。需要将每个名称都用h5包裹起来。

 

如果将4个字符串用h5包起来再放到页面上,将会呈现如下效果:

image.png

方案2内部循环:map循环

作用:遍历数组中的每一项,根据这一项,生成一个新的数组返回

区别:mapforeach的区别是,map有返回值,foreach没有返回值是对元素的每一项进行操作

 

示例代码:

//1.导入包

import React from 'react'

import ReactDOM from 'react-dom'

 

const h1 = <h1>红红火火开开心心</h1>    //不要把它想象成标签,这是一个js对象

const arr =[       // jsx元素数组,每一项看成一个对象

   <h2>这是h2</h2>,

   <h3>这是h3</h3>

]

 

const arrStr = ['毛利兰','柯南','小五郎',’灰原哀’]

 

//定义一个空数组,将来用来存放 名称标签  

//方案一:在外部进行for循环

const nameArr = []

arrStr.forEach(item =>{

   const temp = <h5>{item}</h5>

   nameArr.push(temp)

})

 

 

// //数组的map方法

// const result = arrStr.map(item => {

//     return item + '~~'  //map中必须有return,如果没有return则没有返回值

// })

// console.log(result)

 

//map返回的只有一行时,可省略外面的大括号和return关键字

const result = arrStr.map(item => item + '~~')

console.log(result)

 

// 3. 使用render函数渲染 jsx xml html 严格多了

//总结:什么情况下需要使用 {} 呢? 当我们需要在 JSX 控制的区域内,写JS表达式,则需要把 JS代码写到 {}

ReactDOM.render(<div>

  {arr}

  <hr/>

 {arrStr}

 <hr/>

 {nameArr}

 <hr/>

 {arrStr.map(item => { //对数组中的每一项做一个map循环

     return <h5>{item}</h5>   //无论是foreach还是map方法,最终需要返回一个数组,里面包含4h5标签

//map返回的是一个完整的数组

 

     })}

</div>, document.getElementById('app'))

 

使用map函数的返回值,如下:

image.png

//每一项都带有“~~”,map对数组中的每一项做一个指定的操作,并且把指定的操作结果当做新数组里的元素并返回,最终map返回的结果是一个新数组。

 

使用map函数,返回完整的数组:
image.png

(arrStr.map(item => <h3>(item)</h3>))}

//还是之前的四项

相关文章
|
存储 前端开发 JavaScript
【第24期】一文读懂React生态
【第24期】一文读懂React生态
403 0
|
Web App开发 弹性计算 编解码
最佳实践:如何扩展你的SRS并发能力?
当我们用SRS快速搭建了视频服务,业务也开始上线运行了,很快就会遇到一个问题:如何支持更多的人观看?如何支持更多的人推流?这本质上就是系统的水平扩展能力,SRS当然是支持的,而且有多种扩展的方法,这篇文章就就详细分析各种扩展的方案,以及各种方案的应用场景和优缺点。
3099 0
最佳实践:如何扩展你的SRS并发能力?
|
8月前
|
人工智能 Linux iOS开发
7.9K star!免费解锁Cursor Pro功能,这个开源神器太强了!
"无需付费即可畅享AI编程神器Cursor的Pro功能,支持Windows/macOS/Linux全平台!"
2590 4
|
设计模式 缓存 前端开发
React中样式解决方案有哪些?
本文首发于微信公众号“前端徐徐”,探讨了React开发中的样式管理方法,包括内联样式、常规CSS、CSS-Module、CSS-in-JS及使用CSS框架等五种常见方案,分析了各自的优缺点,帮助开发者根据项目需求选择合适的样式解决方案。
365 0
|
小程序 前端开发 算法
前端(十六)——微信小程序语音转文字,文字转语音功能的实现
前端(十六)——微信小程序语音转文字,文字转语音功能的实现
2416 0
|
JavaScript Unix Shell
#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)
#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)
554 0
|
Android开发
svn服务器配置常见问题
svn服务器配置常见问题
264 1
|
人机交互 调度 Windows
操作系统的概念、并发和并行的区别、操作系统的发展和分类
操作系统的概念、并发和并行的区别、操作系统的发展和分类
353 2
|
视频直播
【视频直播篇七】Aliplayer的使用
本文着重介绍Aliplayer的使用
1632 0
|
前端开发 JavaScript 程序员
Tailwind 生成的 CSS文件竟然有 3.7 Mb 这么巨大!这还能用?
Tailwind 是最近国外大火的 Utility CSS 框架,形态上有点类似以前的 Bootstrap,潮流是一种轮回。 用它来写一个卡片,大概是这样的体验,只用到了工具 class,而不用写任何额外的样式: