# tauri-win-learn **Repository Path**: mingjianyeying/tauri-win-learn ## Basic Information - **Project Name**: tauri-win-learn - **Description**: tauri构建windows桌面端应用 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-12 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust, React, vite ## README # Tauri 学习项目 这是一个基于 Tauri 2.0 和 React 的桌面应用示例项目,旨在展示 Tauri 的各种功能和最佳实践。 ## 功能特点 - 🎨 支持深色/浅色主题切换,可以跟随系统设置或手动设置 - 🌐 实现了数据库 (MySQL) 的连接和基本 CRUD 操作 - 📁 文件操作示例 - 🔔 桌面通知功能 - 📡 HTTP 请求示例 - 🖥️ 获取操作系统信息 - 📊 全面的系统详情监控(CPU、内存、磁盘、网络、电池) - 🔄 前后端通信示例 - 🔍 系统托盘整合,支持托盘图标和菜单 - 📝 日志记录示例 ## 技术栈 - **前端**: React 18 + React Router + Material UI - **后端**: Rust + Tauri 2.0 - **数据库**: MySQL - **状态管理**: React Hooks - **构建工具**: Vite ## 预览 ![preview](/public/img/app-preview.png) ## 开发环境设置 ### 前提条件 - [Node.js](https://nodejs.org/) (v16+) - [Rust](https://www.rust-lang.org/tools/install) (最新版) - [Tauri CLI](https://tauri.app/v1/guides/getting-started/setup) - [MySQL](https://dev.mysql.com/downloads/) (或使用 MySQL Docker 容器) ### 安装 1. 克隆项目 ```bash git clone https://gitee.com/mingjianyeying/tauri-win-learn.git cd tauri-win-learn ``` 2. 安装依赖 ```bash yarn ``` 3. 配置数据库 复制配置文件模板并填入你的数据库信息: ```bash cp src-tauri/config.example.json src-tauri/config-dev.json ``` 编辑 `src-tauri/config-dev.json` 文件,提供合适的数据库连接字符串。 4. 启动开发服务器 ```bash yarn tauri dev ``` ## 应用结构 ``` src/ ├── App.jsx # 应用主组件 ├── App.css # 全局样式 ├── main.jsx # 入口文件 ├── components/ # 共享组件 ├── layouts/ # 布局组件 └── pages/ # 页面组件 ├── HomePage.jsx ├── AboutPage.jsx ├── SettingsPage.jsx ├── SqlCasePage.jsx ├── OsInfoPage.jsx ├── FileOperationPage.jsx ├── HttpCasePage.jsx ├── NotificationCasePage.jsx ├── LogCasePage.jsx # 日志功能演示页 ├── TrayCasePage.jsx # 系统托盘功能演示页 └── SystemInfoPage.jsx # 系统详情监控页面 src-tauri/ ├── src/ │ ├── lib.rs # 库入口及模块导出 │ ├── main.rs # 应用入口文件 │ ├── database.rs # 数据库操作模块 │ ├── tray.rs # 系统托盘功能模块 │ └── sysInfo.rs # 系统信息监控模块 ├── Cargo.toml # Rust 项目配置 ├── tauri.conf.json # Tauri 配置 ├── capabilities/ # Tauri 能力配置 └── icons/ # 应用图标 ``` ## 主要功能说明 ### 模块化架构 项目采用模块化设计,将功能划分为不同的模块: - **database 模块**: 负责数据库连接、迁移和用户CRUD操作 - **tray 模块**: 处理系统托盘功能,包括图标显示和菜单操作 - **sysInfo 模块**: 负责收集和处理系统信息,提供简化的系统监控数据 - **lib.rs**: 作为库入口,导出模块供主应用使用 - **main.rs**: 应用程序入口,整合各模块功能 ### 系统信息监控 应用提供了全面的系统信息监控功能,包括: - **CPU信息**: 显示处理器型号、核心数量和实时CPU使用率 - **内存信息**: 显示总内存、已用内存、可用内存和内存使用率 - **磁盘信息**: 显示所有磁盘的总容量、可用空间和使用率,支持多磁盘显示 - **网络信息**: 显示网络接口和网络流量统计 - **电池信息**: 显示电池制造商、型号、状态、电量、健康度和循环次数等详细信息 系统信息页面提供了直观的进度条和彩色指示器,方便用户快速了解系统状态。 ### 系统托盘功能 应用集成了系统托盘功能,当应用最小化或关闭窗口时,程序将继续在系统托盘中运行: - **左键点击托盘图标**: 切换窗口显示/隐藏状态 - **右键点击托盘图标**: 显示菜单,提供显示窗口、隐藏窗口和退出等选项 - **关闭主窗口**: 应用不会退出,而是隐藏到系统托盘 ### 主题切换 应用支持深色/浅色主题切换,可以在设置页面进行配置。主题设置被保存在 localStorage 中,并支持以下选项: - **跟随系统**: 自动根据操作系统设置切换主题 - **浅色**: 始终使用浅色主题 - **深色**: 始终使用深色主题 ### 数据库操作 应用展示了如何连接 MySQL 数据库并执行基本操作: - 查询用户列表 - 添加新用户 - 更新用户信息 - 删除用户 ### 文件操作 展示了如何读取、写入和操作文件。功能包括: - 选择文件和文件夹 - 保存文件 - 读取文件内容 - 创建和修改文件 ### 桌面通知 展示了如何发送和管理本地桌面通知,包括: - 基本通知 - 带操作的通知 - 自定义通知样式 ### HTTP 请求 展示了如何使用 Tauri 的 HTTP 客户端发送网络请求,包括: - GET 请求 - POST 请求 - 处理响应数据 ### 日志记录 演示了如何使用 Tauri 的日志插件记录应用日志,支持: - 不同日志级别(调试、信息、警告、错误) - 日志文件轮转 - 自定义日志格式 ## 构建生产版本 要构建生产版本,请运行: ```bash yarn tauri build ``` 生成的可执行文件将位于 `src-tauri/target/release/bundle/msi` 目录中。 ## 贡献指南 欢迎贡献代码、报告 bug 或提出新功能。请遵循以下步骤: 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交更改 (`git commit -m 'Add amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 开启 Pull Request ## 许可证 [MIT](LICENSE) ## 致谢 - [Tauri](https://tauri.app/) - 提供了构建桌面应用的框架 - [React](https://reactjs.org/) - 用于构建用户界面的 JavaScript 库 - [Material UI](https://mui.com/) - React UI 组件库 - [Vite](https://vitejs.dev/) - 前端构建工具 - [SQLx](https://github.com/launchbadge/sqlx) - Rust数据库工具库 - [Tauri Plugin System Info](https://github.com/tauri-apps/plugins-workspace/tree/v2/plugins/system-info) - 系统信息插件