react如何迭代
在 React 中迭代数组或对象
React 提供了多种方式来处理数组或对象的迭代,以下是常见的方法:
使用 map 方法迭代数组
map 是 JavaScript 数组的内置方法,常用于在 React 中渲染列表。它会返回一个新数组,每个元素都会被处理。
const items = ['Apple', 'Banana', 'Orange'];
function List() {
return (
<ul>
{items.map((item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
}
使用 forEach 方法
forEach 也可以用于迭代,但它不返回新数组,通常用于执行副作用操作。

const items = ['Apple', 'Banana', 'Orange'];
const listItems = [];
items.forEach((item, index) => {
listItems.push(<li key={index}>{item}</li>);
});
function List() {
return <ul>{listItems}</ul>;
}
使用 for 循环
传统的 for 循环也可以用于迭代数组。
const items = ['Apple', 'Banana', 'Orange'];
const listItems = [];
for (let i = 0; i < items.length; i++) {
listItems.push(<li key={i}>{items[i]}</li>);
}
function List() {
return <ul>{listItems}</ul>;
}
迭代对象
对于对象,可以使用 Object.keys、Object.values 或 Object.entries 转换为数组后再迭代。

const obj = { a: 'Apple', b: 'Banana', c: 'Orange' };
function List() {
return (
<ul>
{Object.keys(obj).map((key) => (
<li key={key}>{obj[key]}</li>
))}
</ul>
);
}
使用 reduce 方法
reduce 可以用于复杂的迭代逻辑,例如累积渲染内容。
const items = ['Apple', 'Banana', 'Orange'];
function List() {
return (
<ul>
{items.reduce((acc, item, index) => {
acc.push(<li key={index}>{item}</li>);
return acc;
}, [])}
</ul>
);
}
使用第三方库如 Lodash
Lodash 提供了 _.map、_.forEach 等方法,可以简化迭代操作。
import _ from 'lodash';
const items = ['Apple', 'Banana', 'Orange'];
function List() {
return (
<ul>
{_.map(items, (item, index) => (
<li key={index}>{item}</li>
))}
</ul>
);
}
注意事项
- 为每个迭代项提供唯一的
key属性,帮助 React 识别元素的变化。 - 避免在
key中使用数组索引,除非列表是静态的且不会重新排序。 - 对于大型列表,考虑使用虚拟滚动库(如
react-window)优化性能。






