React中遍历数组生成标签问题
作者:我叫胡八一
这篇文章主要介绍了React中遍历数组生成标签问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
React遍历数组生成标签
举一个例子
一个列表根据数组渲染li元素,在vue中一个v-for就解决了,那在React中怎么实现呢?
这里我们直接引入的React文件,没用脚手架
let arr = [1,2,3]; ReactDOM.render(<ul> { arr.map(value => <li key={value}>{value}</li>) } </ul>,document.querySelector('#root'))
但这里为什么用map方法呢,因为map会返回一个新数组,在这个地方就等价于返回了这个数组
let arr = [<li>1</li>, <li>2</li>, <li>3</li>]
渲染的也就是这个数组。
React功能实现-数组遍历渲染
在react中如何将一个数组遍历,并且逐个渲染在页面上?
1.在jsx渲染中
如果这个变量是一个数组,则会展开这个数组的所有成员.
var arr = [ <h1>Hello world!</h1>, <h2>React is awesome</h2>, ]; ReactDOM.render( <div>{arr}</div>, document.getElementById('example') );
example元素中将产生两个div,一个里面有h1标签和一个里面有h2标签.
2.array.map().
<ul> { arr.map(function(val){ return <li>{val}</li> })</ul>
array.map()的参数为一个函数,这个函数是每个array中的元素应该执行的函数,参数为val.
其实这个方法也是依赖于第1个特性的,因为array.map()是有返回值的,返回值是一个新数组.所以最终相当于<ul>{newArray}</ul>
3.为什么不能用forEach()?
因为forEach()没有返回值
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。