Skip to content

yangnianboy/TO_DO

Repository files navigation

待办事项应用程序

一个现代化、高性能的待办事项桌面应用程序。

功能特性

  • 🎨 现代化、精致美观的用户界面设计
  • ✅ 完整的待办事项管理功能(添加、编辑、删除、标记完成)
  • 📊 实时统计功能
  • 🗑️ 批量清除已完成事项
  • 💾 数据持久化存储(应用程序关闭后数据不丢失)
  • 🖥️ 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  # 构建配置

核心优化

1. 代码结构优化

  • 模块化设计:将功能拆分为独立模块,提高可维护性
  • 职责分离:主进程、预加载、渲染进程职责明确
  • 代码复用:提取公共函数,减少重复代码

2. 性能优化

  • DOM操作优化:缓存DOM元素,减少查询次数
  • 事件处理优化:合理的事件绑定和解绑机制
  • 滚动性能:优化的滚动条和列表渲染
  • 内存管理:及时清理无用数据和事件监听器

3. 用户体验优化

  • 固定布局:界面大小固定,内容滚动浏览
  • 清晰滚动条:自定义样式的滚动条,易于操作
  • 流畅动画:优化的过渡动画和交互反馈
  • 响应式设计:适配不同屏幕尺寸

安装和运行

开发模式运行

# 安装依赖
npm install

# 启动应用程序
npm start

构建Windows可执行文件

# 构建Windows版本
npm run dist

构建完成的exe文件位于 dist/win-unpacked/待办事项.exe

使用说明

  1. 添加待办事项 - 在输入框输入内容,点击添加或按回车
  2. 标记完成 - 点击待办事项前的复选框标记为已完成
  3. 编辑任务 - 悬停待办事项可显示编辑按钮,点击修改内容
  4. 删除任务 - 悬停待办事项可显示删除按钮,点击移除任务
  5. 窗口控制 - 右上角按钮可最小化或关闭应用程序
  6. 窗口移动 - 在标题栏区域可以拖拽移动应用程序
  7. 批量清理 - 点击"清除已完成"按钮批量删除所有已完成的待办事项

API接口

主进程IPC接口

// 待办事项操作
electronAPI.getTodos()        // 获取所有待办事项
electronAPI.addTodo(todo)     // 添加待办事项
electronAPI.updateTodo(todo)  // 更新待办事项
electronAPI.deleteTodo(id)    // 删除待办事项
electronAPI.clearCompleted()  // 清除已完成事项

// 窗口操作
electronAPI.minimize()        // 最小化窗口
electronAPI.close()           // 关闭窗口

许可证

MIT License

开发说明

代码规范

  • 使用ES6+语法特性
  • 遵循模块化开发模式
  • 保持代码简洁和可读性
  • 合理的错误处理机制

性能监控

  • 避免频繁的DOM操作
  • 合理使用事件委托
  • 及时清理事件监听器
  • 优化内存使用

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published