当前位置:首页 > React

如何用react做增删

2026-03-10 18:23:36React

使用React实现增删功能

在React中实现增删功能通常涉及状态管理和事件处理。以下是实现增删操作的完整方法。

状态初始化

使用useState钩子来管理数据列表和输入值。创建一个数组状态存储数据,另一个状态存储输入框内容。

const [items, setItems] = useState([]);
const [inputValue, setInputValue] = useState('');

添加功能实现

创建处理添加的函数,更新状态数组。需要防止空值提交并清空输入框。

const handleAdd = () => {
  if (inputValue.trim() === '') return;
  setItems([...items, inputValue]);
  setInputValue('');
};

删除功能实现

通过filter方法创建新数组实现删除。根据索引或唯一ID移除特定项。

const handleDelete = (index) => {
  setItems(items.filter((_, i) => i !== index));
};

完整组件示例

import React, { useState } from 'react';

function CrudExample() {
  const [items, setItems] = useState([]);
  const [inputValue, setInputValue] = useState('');

  const handleAdd = () => {
    if (inputValue.trim() === '') return;
    setItems([...items, inputValue]);
    setInputValue('');
  };

  const handleDelete = (index) => {
    setItems(items.filter((_, i) => i !== index));
  };

  return (
    <div>
      <input
        value={inputValue}
        onChange={(e) => setInputValue(e.target.value)}
      />
      <button onClick={handleAdd}>添加</button>

      <ul>
        {items.map((item, index) => (
          <li key={index}>
            {item}
            <button onClick={() => handleDelete(index)}>删除</button>
          </li>
        ))}
      </ul>
    </div>
  );
}

使用唯一标识符

对于更复杂的场景,建议使用唯一ID而非索引作为key。

const [items, setItems] = useState([{id: 1, text: '示例'}]);

const handleAdd = () => {
  setItems([...items, {id: Date.now(), text: inputValue}]);
};

const handleDelete = (id) => {
  setItems(items.filter(item => item.id !== id));
};

性能优化

对于大型列表,考虑使用React.memo或useCallback优化渲染性能。

const MemoizedItem = React.memo(function Item({item, onDelete}) {
  return (
    <li>
      {item.text}
      <button onClick={() => onDelete(item.id)}>删除</button>
    </li>
  );
});

表单提交处理

添加表单提交事件处理,支持回车键提交。

如何用react做增删

<form onSubmit={(e) => {
  e.preventDefault();
  handleAdd();
}}>
  <input
    value={inputValue}
    onChange={(e) => setInputValue(e.target.value)}
  />
  <button type="submit">添加</button>
</form>

标签: 如何用react
分享给朋友:

相关文章

react 如何引入jquery

react 如何引入jquery

引入 jQuery 到 React 项目 在 React 项目中引入 jQuery 可以通过多种方式实现,但需要注意 React 和 jQuery 操作 DOM 的方式可能冲突,因此建议仅在必要时使用…

react 如何调试

react 如何调试

调试 React 应用的方法 使用 React Developer Tools 安装 Chrome 或 Firefox 的 React Developer Tools 扩展,可以检查组件树、状态和 p…

react如何通信

react如何通信

React 组件通信方式 React 组件间的通信方式多样,具体选择取决于组件关系和场景需求。以下是常见方法: 父子组件通信 父组件通过 props 向子组件传递数据,子组件通过回调函数通知父组件…

webstorm如何运行react

webstorm如何运行react

运行 React 项目的方法 在 WebStorm 中运行 React 项目需要确保项目已正确配置,并且依赖项已安装。以下是具体操作步骤: 确保项目依赖已安装 打开终端(Terminal),导航到项…

react如何切换class

react如何切换class

动态切换 React 组件的类名 在 React 中动态切换类名可以通过多种方式实现,以下是常见的几种方法: 使用模板字符串和状态管理 function MyComponent() {…

react如何引入图片

react如何引入图片

在React中引入图片的方法 使用import直接引入 将图片文件放在项目src目录下(如src/images),通过ES6的import语法引入: import logo from './imag…