🎯 一个简洁高效的待办事项管理工具,基于 React + Vite 构建,支持数据导入导出、隐私设置、主题切换等功能。
- 📝 任务管理:创建、编辑、删除、完成待办事项
- 🔍 智能过滤:按状态(全部/进行中/已完成)过滤任务
- 📊 统计面板:实时显示任务统计信息
- 💾 数据管理:支持数据导入导出(JSON格式)
- 🎨 主题切换:明亮/暗黑主题自由切换
- 🔒 隐私保护:完整的隐私设置和数据控制
- 💰 支持功能:支付宝/微信打赏功能
- 📱 响应式设计:完美适配桌面和移动设备
- 🌐 PWA支持:可安装为原生应用
- Node.js 16.0+
- npm 或 yarn
CentOS 7 兼容性说明:项目已针对 CentOS 7 + Node.js 16 环境进行优化,添加了必要的 polyfill 以解决
crypto.getRandomValues
兼容性问题。
# 克隆项目
git clone https://github.com/xinlingfeiwu/react-todo-app.git
cd react-todo-app
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 打开浏览器访问 http://localhost:5173
# 构建项目
npm run build
# 预览构建结果
npm run preview
react-todo-app/
├── public/ # 静态资源
│ ├── favicon.svg # 网站图标
│ ├── manifest.json # PWA配置
│ └── robots.txt # SEO配置
├── src/ # 源代码
│ ├── components/ # React组件
│ │ ├── TodoWrapper.jsx # 主容器组件
│ │ ├── CreateForm.jsx # 创建任务表单
│ │ ├── EditForm.jsx # 编辑任务表单
│ │ ├── TodoList.jsx # 任务列表
│ │ ├── Todo.jsx # 单个任务组件
│ │ ├── TodoFilter.jsx # 过滤器组件
│ │ ├── TodoStats.jsx # 统计组件
│ │ ├── DataManager.jsx # 数据管理组件
│ │ ├── ThemeToggle.jsx # 主题切换组件
│ │ ├── AppSettings.jsx # 应用设置
│ │ ├── PrivacySettings.jsx # 隐私设置
│ │ └── Donate.jsx # 捐赠组件
│ ├── hooks/ # 自定义Hooks
│ │ └── useTodos.js # 待办事项状态管理
│ ├── utils/ # 工具函数
│ │ ├── privacyManager.js # 隐私管理
│ │ ├── themeManager.js # 主题管理
│ │ └── contentFilter.js # 内容过滤
│ ├── styles/ # 样式文件
│ │ └── Todo.css # 主要样式
│ ├── constants/ # 常量定义
│ │ └── todoConstants.js
│ ├── App.jsx # 应用主组件
│ └── main.jsx # 应用入口
├── deploy/ # 部署配置
│ ├── deploy.sh # 自动部署脚本
│ └── check-env.sh # 环境检查脚本
├── package.json # 项目配置
├── vite.config.js # Vite配置
└── README.md # 项目说明
- 前端框架:React 19.1.0
- 构建工具:Vite 5.4.19
- UI组件:自定义组件 + CSS
- 图标库:React Icons
- 状态管理:React Hooks (useState, useEffect, useCallback)
- 数据存储:localStorage
- 样式方案:CSS3 + CSS变量
npm run dev # 启动开发服务器
npm run build # 构建生产版本
npm run build:prod # 生产环境构建
npm run preview # 预览构建结果
npm run lint # 代码检查
npm run lint:fix # 自动修复代码问题
npm run analyze # 构建分析
- ✅ 创建新任务
- ✏️ 编辑现有任务
- 🗑️ 删除任务
- ✔️ 标记完成/未完成
- 🔍 任务过滤和搜索
- 📤 导出数据为JSON格式
- 📥 从JSON文件导入数据
- 🔄 数据备份和恢复
- 🧹 清空所有数据
- 🌙 明亮/暗黑主题切换
- 📱 完全响应式设计
- ⚡ 快速响应的交互
- 🎯 直观的用户界面
项目不需要特殊的环境变量配置,开箱即用。
- 主题配色可在
src/styles/Todo.css
中的CSS变量部分修改 - 应用配置可在
src/constants/todoConstants.js
中调整
构建后的 dist
目录可以部署到任何静态托管服务:
- Vercel: 连接GitHub自动部署
- Netlify: 拖拽dist文件夹部署
- GitHub Pages: 使用GitHub Actions自动部署
项目包含完整的服务器部署脚本:
# 使用自动部署脚本
./deploy/deploy.sh your-domain.com
支持的服务器环境:
- CentOS 7/8
- Ubuntu 18.04+
- 自动配置Nginx + SSL证书
本项目采用 MIT 许可证。
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature
) - 提交你的更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 打开一个 Pull Request
- 🐛 报告Bug
- 💡 功能建议
- 📧 邮箱:lovexinlingfeiwu@foxmail.com
感谢所有为这个项目做出贡献的人!
⭐ 如果这个项目对你有帮助,请给它一个星标!