简单的待办事项(To-do List)应用
创建一个简单的待办事项(To-do List)应用是一个很好的练习,用来学习 React 的基础概念。这个示例将使用 React 的函数组件和 useState Hook 来管理状态,并实现添加和删除待办事项的功能。
1. 项目结构
我们假设你已经在一个 React 项目中,可以使用 create-react-app 或其他工具来初始化项目。
text
src/
└── App.js
└── index.js2. 在 App.js 中编写代码
jsx
import React, { useState } from 'react';
import './App.css';
function App() {
// 定义待办事项的状态
const [todos, setTodos] = useState([]);
const [input, setInput] = useState('');
// 添加新任务
const addTodo = () => {
if (input.trim()) {
setTodos([...todos, input.trim()]);
setInput(''); // 清空输入框
}
};
// 删除任务
const deleteTodo = (indexToDelete) => {
const newTodos = todos.filter((_, index) => index !== indexToDelete);
setTodos(newTodos);
};
return (
<div className="App">
<h1>待办事项</h1>
{/* 输入框和添加按钮 */}
<div>
<input
type="text"
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="请输入待办事项"
/>
<button onClick={addTodo}>添加</button>
</div>
{/* 待办事项列表 */}
<ul>
{todos.map((todo, index) => (
<li key={index}>
{todo}
<button onClick={() => deleteTodo(index)}>删除</button>
</li>
))}
</ul>
</div>
);
}
export default App;3. 样式(App.css)
css
.App {
text-align: center;
max-width: 400px;
margin: 0 auto;
}
input {
padding: 10px;
margin-right: 10px;
font-size: 16px;
}
button {
padding: 10px;
font-size: 16px;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: flex;
justify-content: space-between;
margin: 10px 0;
padding: 10px;
background-color: #f4f4f4;
}
li button {
background-color: red;
color: white;
border: none;
padding: 5px 10px;
cursor: pointer;
}4. 运行应用
当你完成了上述代码,可以通过 npm start 或 yarn start 来启动项目。你将看到一个简单的待办事项应用,用户可以输入任务,点击 "添加" 按钮将其添加到列表中,并通过点击 "删除" 按钮来移除任务。
功能总结
- 添加任务:通过输入框输入待办事项,并点击按钮将其添加到任务列表。
- 删除任务:每个任务旁边有一个删除按钮,点击后该任务将从列表中移除。
这个示例展示了 React 中如何使用 useState 来管理组件状态,如何处理输入框的值,以及如何渲染和操作列表中的数据。