REACT CRUD App

A simple React CRUD (Create, Read, Update, Delete) App using functional components and React Hooks.

Steps to Set Up

Create a new React app

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
npx create-react-app crud-app
cd crud-app
npm start
npx create-react-app crud-app cd crud-app npm start
npx create-react-app crud-app
cd crud-app
npm start

Code for src/App.js

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import React, { useState } from "react";
import { v4 as uuidv4 } from "uuid";
function App() {
const [users, setUsers] = useState([]);
const [name, setName] = useState("");
const [editingId, setEditingId] = useState(null);
const [updatedName, setUpdatedName] = useState("");
// Add User
const addUser = () => {
if (name.trim()) {
setUsers([...users, { id: uuidv4(), name }]);
setName("");
}
};
// Delete User
const deleteUser = (id) => {
setUsers(users.filter((user) => user.id !== id));
};
// Start Editing
const startEditing = (id, name) => {
setEditingId(id);
setUpdatedName(name);
};
// Update User
const updateUser = () => {
setUsers(
users.map((user) =>
user.id === editingId ? { ...user, name: updatedName } : user
)
);
setEditingId(null);
setUpdatedName("");
};
return (
<div style={{ textAlign: "center", marginTop: "50px" }}>
<h1>React CRUD App</h1>
<input
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
placeholder="Enter name..."
/>
<button onClick={addUser}>Add</button>
<ul style={{ listStyle: "none", padding: 0 }}>
{users.map((user) => (
<li key={user.id}>
{editingId === user.id ? (
<>
<input
type="text"
value={updatedName}
onChange={(e) => setUpdatedName(e.target.value)}
/>
<button onClick={updateUser}>Save</button>
</>
) : (
<>
{user.name}
<button onClick={() => startEditing(user.id, user.name)}>✏️ Edit</button>
<button onClick={() => deleteUser(user.id)}>❌ Delete</button>
</>
)}
</li>
))}
</ul>
</div>
);
}
export default App;
import React, { useState } from "react"; import { v4 as uuidv4 } from "uuid"; function App() { const [users, setUsers] = useState([]); const [name, setName] = useState(""); const [editingId, setEditingId] = useState(null); const [updatedName, setUpdatedName] = useState(""); // Add User const addUser = () => { if (name.trim()) { setUsers([...users, { id: uuidv4(), name }]); setName(""); } }; // Delete User const deleteUser = (id) => { setUsers(users.filter((user) => user.id !== id)); }; // Start Editing const startEditing = (id, name) => { setEditingId(id); setUpdatedName(name); }; // Update User const updateUser = () => { setUsers( users.map((user) => user.id === editingId ? { ...user, name: updatedName } : user ) ); setEditingId(null); setUpdatedName(""); }; return ( <div style={{ textAlign: "center", marginTop: "50px" }}> <h1>React CRUD App</h1> <input type="text" value={name} onChange={(e) => setName(e.target.value)} placeholder="Enter name..." /> <button onClick={addUser}>Add</button> <ul style={{ listStyle: "none", padding: 0 }}> {users.map((user) => ( <li key={user.id}> {editingId === user.id ? ( <> <input type="text" value={updatedName} onChange={(e) => setUpdatedName(e.target.value)} /> <button onClick={updateUser}>Save</button> </> ) : ( <> {user.name} <button onClick={() => startEditing(user.id, user.name)}>✏️ Edit</button> <button onClick={() => deleteUser(user.id)}>❌ Delete</button> </> )} </li> ))} </ul> </div> ); } export default App;
import React, { useState } from "react";
import { v4 as uuidv4 } from "uuid";

function App() {
  const [users, setUsers] = useState([]);
  const [name, setName] = useState("");
  const [editingId, setEditingId] = useState(null);
  const [updatedName, setUpdatedName] = useState("");

  // Add User
  const addUser = () => {
    if (name.trim()) {
      setUsers([...users, { id: uuidv4(), name }]);
      setName("");
    }
  };

  // Delete User
  const deleteUser = (id) => {
    setUsers(users.filter((user) => user.id !== id));
  };

  // Start Editing
  const startEditing = (id, name) => {
    setEditingId(id);
    setUpdatedName(name);
  };

  // Update User
  const updateUser = () => {
    setUsers(
      users.map((user) =>
        user.id === editingId ? { ...user, name: updatedName } : user
      )
    );
    setEditingId(null);
    setUpdatedName("");
  };

  return (
    <div style={{ textAlign: "center", marginTop: "50px" }}>
      <h1>React CRUD App</h1>
      <input
        type="text"
        value={name}
        onChange={(e) => setName(e.target.value)}
        placeholder="Enter name..."
      />
      <button onClick={addUser}>Add</button>

      <ul style={{ listStyle: "none", padding: 0 }}>
        {users.map((user) => (
          <li key={user.id}>
            {editingId === user.id ? (
              <>
                <input
                  type="text"
                  value={updatedName}
                  onChange={(e) => setUpdatedName(e.target.value)}
                />
                <button onClick={updateUser}>Save</button>
              </>
            ) : (
              <>
                {user.name}
                <button onClick={() => startEditing(user.id, user.name)}>✏️ Edit</button>
                <button onClick={() => deleteUser(user.id)}>❌ Delete</button>
              </>
            )}
          </li>
        ))}
      </ul>
    </div>
  );
}

export default App;

Features

✔ Add Users
✔ Read Users (List all users)
✔ Update Users (Edit & Save Changes)
✔ Delete Users

Optional Enhancements

  • Style it with CSS, Tailwind CSS, or Bootstrap.
  • Use localStorage to save data persistently.
  • Implement a backend (Node.js, Firebase, etc.) for database storage.