一个现代化、高性能的待办事项桌面应用程序。
- 🎨 现代化、精致美观的用户界面设计
- ✅ 完整的待办事项管理功能(添加、编辑、删除、标记完成)
- 📊 实时统计功能
- 🗑️ 批量清除已完成事项
- 💾 数据持久化存储(应用程序关闭后数据不丢失)
- 🖥️ Windows桌面应用程序(可移动、可调整大小)
- 📱 响应式设计,支持移动设备
- 🔄 窗口控制(最小化、关闭、拖拽移动)
- 🎯 智能UI交互(根据内容动态显示/隐藏按钮)
- Electron - 跨平台桌面应用框架
- HTML5/CSS3/JavaScript - 现代前端技术
- Node.js - 后端运行时环境
- 模块化设计 - 代码结构清晰,职责分离
- 性能优化 - 优化的滚动、渲染和事件处理
- 内存管理 - 高效的数据存储和清理机制
- 用户体验 - 流畅的动画和交互反馈
应用程序使用文件系统持久化存储待办事项数据,确保即使应用程序关闭或系统重启,数据也不会丢失。
- Windows:
C:\Users\[用户名]\.todo-app\todos.json
- macOS:
/Users/[用户名]/.todo-app/todos.json
- Linux:
/home/[用户名]/.todo-app/todos.json
[
{
"id": 1754712076088,
"text": "待办事项内容",
"completed": false,
"createdAt": "2025-08-09T04:01:16.088Z"
}
]
- 异步文件操作:使用Node.js fs.promises模块进行非阻塞文件读写
- 自动初始化:首次运行时自动创建数据目录和文件
- 错误处理:完善的异常处理机制,确保数据安全
- 实时同步:每次数据变更都会立即保存到磁盘
- 用户目录隔离:数据存储在用户主目录下,避免权限问题
- JSON格式:人类可读的数据格式,便于调试和备份
- 原子操作:文件写入使用原子操作,防止数据损坏
├── main.js # Electron主进程(窗口控制和IPC通信)
├── preload.js # 预加载脚本(安全API暴露)
├── index.html # 主界面HTML
├── styles.css # 样式文件(优化的UI设计)
├── renderer.js # 渲染进程脚本(模块化的前端逻辑)
├── package.json # 项目配置和脚本
└── electron-builder.json # 构建配置
- 模块化设计:将功能拆分为独立模块,提高可维护性
- 职责分离:主进程、预加载、渲染进程职责明确
- 代码复用:提取公共函数,减少重复代码
- DOM操作优化:缓存DOM元素,减少查询次数
- 事件处理优化:合理的事件绑定和解绑机制
- 滚动性能:优化的滚动条和列表渲染
- 内存管理:及时清理无用数据和事件监听器
- 固定布局:界面大小固定,内容滚动浏览
- 清晰滚动条:自定义样式的滚动条,易于操作
- 流畅动画:优化的过渡动画和交互反馈
- 响应式设计:适配不同屏幕尺寸
# 安装依赖
npm install
# 启动应用程序
npm start
# 构建Windows版本
npm run dist
构建完成的exe文件位于 dist/win-unpacked/待办事项.exe
- 添加待办事项 - 在输入框输入内容,点击添加或按回车
- 标记完成 - 点击待办事项前的复选框标记为已完成
- 编辑任务 - 悬停待办事项可显示编辑按钮,点击修改内容
- 删除任务 - 悬停待办事项可显示删除按钮,点击移除任务
- 窗口控制 - 右上角按钮可最小化或关闭应用程序
- 窗口移动 - 在标题栏区域可以拖拽移动应用程序
- 批量清理 - 点击"清除已完成"按钮批量删除所有已完成的待办事项
// 待办事项操作
electronAPI.getTodos() // 获取所有待办事项
electronAPI.addTodo(todo) // 添加待办事项
electronAPI.updateTodo(todo) // 更新待办事项
electronAPI.deleteTodo(id) // 删除待办事项
electronAPI.clearCompleted() // 清除已完成事项
// 窗口操作
electronAPI.minimize() // 最小化窗口
electronAPI.close() // 关闭窗口
MIT License
- 使用ES6+语法特性
- 遵循模块化开发模式
- 保持代码简洁和可读性
- 合理的错误处理机制
- 避免频繁的DOM操作
- 合理使用事件委托
- 及时清理事件监听器
- 优化内存使用