react如何给数组添加值
使用 push 方法(需注意不可变性)
在 React 中直接使用 push 会修改原数组,违反不可变原则。推荐先复制数组再操作:
const [items, setItems] = useState([]);
const newItem = { id: 1, name: "New Item" };
// 正确做法
setItems([...items, newItem]);
使用 concat 方法
concat 会返回新数组,天然符合 React 状态更新要求:
setItems(items.concat(newItem));
使用展开运算符
ES6 展开运算符是最简洁的写法:
setItems([...items, newItem]);
处理带索引的插入
若需在特定位置插入元素:
const insertAt = 1; // 插入位置
setItems([
...items.slice(0, insertAt),
newItem,
...items.slice(insertAt)
]);
使用函数式更新
当新状态依赖旧状态时,推荐使用函数式更新:
setItems(prevItems => [...prevItems, newItem]);
注意事项
- 避免直接修改状态数组(如
items.push(newItem)) - 复杂操作建议使用
immer等不可变库 - 对于大型数组,考虑性能优化手段






