美文网首页
useState 数组

useState 数组

作者: 林希品 | 来源:发表于2025-05-07 16:21 被阅读0次

✅ 初始化

interface Item {
  id: number;
  name: string;
}

const [array, setArray] = useState<Item[]>([]);

🔼 1. 增(Add)

//添加到末尾(类似 push):
const addItemToEnd = (item: Item) => {
  setArray(prev => [...prev, item]);
};

//添加到开头(类似 unshift):
const addItemToStart = (item: Item) => {
  setArray(prev => [item, ...prev]);
};

🔽 2. 删(Delete)

//根据 id 删除某项:
const removeItemById = (id: number) => {
  setArray(prev => prev.filter(item => item.id !== id));
};

//✅ 根据下标删除数组中的某一项:循环方式
const removeItemByIndex = (indexToRemove: number) => {
  setArray(prev => prev.filter((_, index) => index !== indexToRemove));
};
//使用
removeItemByIndex(2);

//✅ 替代写法(性能稍好一点,避免多次循环):如果你喜欢 slice:
const removeItemByIndex = (indexToRemove: number) => {
  setArray(prev => [
    ...prev.slice(0, indexToRemove),
    ...prev.slice(indexToRemove + 1),
  ]);
};
//❗ 注意事项:
//• 删除前最好检查索引合法性,防止越界:
if (indexToRemove >= 0 && indexToRemove < array.length) {
  removeItemByIndex(indexToRemove);
}


🔍 3. 查(Find)
注意:查找不需要 setArray,直接在 array 上操作即可。

//查找某个项(如 id 匹配):
const findItemById = (id: number) => {
  return array.find(item => item.id === id);
};

✏️ 4. 改(Update)

根据 id 修改某项内容:
const updateItemById = (id: number, newName: string) => {
  setArray(prev =>
    prev.map(item =>
      item.id === id ? { ...item, name: newName } : item
    )
  );
};

• 始终使用 不可变操作(返回新数组)来触发组件更新。
• 修改前先 map,删除用 filter,查找用 find。
• 每项数据推荐使用 id 字段来标识,避免因内容重复而误删误改。

相关文章

  • React Hooks

    一.useState hooks就是在函数组件中使用state通过useState实现的。 useState传入一...

  • useState & useReducer

    useState 在 React 函数组件中存储内部 state 通常会使用 useState hook 传入一个...

  • React Hooks API

    1. useState 等价于 复杂的state 注意:useState只能放在函数组件内部,不能单独拿出来 2....

  • 【react】常用Hooks 以及对应的生命周期

    useState 函数组件不需要构造函数,可以通过调用 useState 来初始化 state,可以独立管理组件变...

  • useState

    1. 基础使用 本节任务: 能够学会useState的基础用法 作用 useState为函数组件提供状态(stat...

  • Hook的常用方法

    useState useState接收一个初始值,返回的是一个解构出来的数组,第一个是当前状态(似state),第...

  • React Hooks

    State Hook State Hook是一个在函数组件中使用的函数(useState), 用于在函数组件中使用...

  • React知识点记录

    函数组件 React.FC 函数组件是最简单的组件定义方式,它接收唯一的 props 参数 useState 通过...

  • React基础Hook

    useState 值为数字的时候 值为对象数组的时候,返回的必须是新的对象 值为数组的时候,返回的必须是新的数组)...

  • react hooks

    useState 在函数组件中,我们没有 this 不能分配或读取 this.state 可以使用 useSta...

网友评论

      本文标题:useState 数组

      本文链接:https://www.haomeiwen.com/subject/pmmdijtx.html