Skip to content

前置条件

前言

SRA社区版是一个Python作为后端,Tauri(Rust+Vue)作为前端的自动化工具,旨在帮助玩家在崩坏星穹铁道游戏中实现自动化操作。

SRA的开发文档旨在为开发者提供详细的指导,帮助了解SRA的基本概念、API使用方法。通过阅读文档,开发者可以快速上手SRA,并根据自己的需求进行定制化开发。

本教程大多偏向于SRA-cli。

感谢您在百忙之中阅读SRA开发文档。这个文档将向你展示从Python基础开始的SRA开发。如果你已经有相关基础,可以跳过学习部分,直接开始研究SRA API。

环境

在开始开发前,确保你拥有:

  • Windows 10 及以上版本(64位)

  • IDE(PyCharm作为推荐,Visual Studio Code、Zed作为可选。不过你也可以使用其他顺手的IDE)或Vim/Nano文本编辑器(不推荐

  • Python(官方推荐使用3.11.5,不建议使用3.13或更高版本)

  • Rust(无限制)


StarRailAssistant 社区版 - 编程语言学习路线

基于项目实际代码结构和技术栈的详细学习指南。

📘 Python 学习路线

第一阶段:Python 基础(1-2 周)

学习目标:掌握 Python 基本语法和编程思想

核心内容

  1. 变量与数据类型

    • 基本类型:intstrfloatbool
    • 容器类型:listtupledictset
    • 类型转换和检查
    • 项目应用:配置文件中的参数存储
  2. 控制流

    • if/elif/else 条件语句
    • forwhile 循环
    • breakcontinuepass
    • 项目应用:任务流程控制(见 task_thread.py
  3. 函数

    • 函数定义和调用
    • 参数传递(位置参数、关键字参数、默认参数)
    • 返回值和多返回值
    • *args**kwargs
    • 项目应用:notify.py 中的 send_windows_notification() 函数
  4. 异常处理

    • try/except/finally
    • 自定义异常
    • 项目应用:邮件发送失败处理(notify.py 中的 send_mail()

实践项目

  • 编写简单的配置读取脚本
  • 实现基础的日志输出系统

第二阶段:面向对象编程(2-3 周)

学习目标:理解类、对象和继承的概念

核心内容

  1. 类和对象

    • 类定义和实例化
    • 属性和方法
    • __init__ 构造函数
    • self 参数的含义
    • 项目应用:Summary 类(notify.py
  2. 继承和多态

    • 单继承和多继承
    • 方法重写
    • super() 函数
    • 项目应用:BaseTask 基类(所有任务继承)
  3. 特殊方法

    • __str____repr__
    • __len____getitem__
    • 项目应用:Summary.__str__() 方法
  4. 类变量和实例变量

    • 区别和使用场景
    • 项目应用:TaskManager 中的 running_flag

实践项目

  • 创建任务基类和具体任务类
  • 实现配置管理类

第三阶段:模块和包(1-2 周)

学习目标:组织代码结构,理解模块化开发

核心内容

  1. 模块导入

    • importfrom...import
    • 模块搜索路径
    • __name__ == '__main__'
    • 项目应用:main.py 中的导入结构
  2. 包结构

    • __init__.py 的作用
    • 包的初始化
    • 相对导入和绝对导入
    • 项目应用:SRACore/ 包结构
  3. 动态导入

    • importlib 模块
    • 项目应用:task_thread.py 中的 importlib.import_module()

实践项目

  • 重构代码为模块化结构
  • 实现动态任务加载系统

第四阶段:文件 I/O 和配置管理(1-2 周)

学习目标:处理文件和配置数据

核心内容

  1. 文件操作

    • 打开、读取、写入、关闭文件
    • 上下文管理器 with 语句
    • 文件模式(rwab
    • 项目应用:读取配置文件
  2. 数据格式处理

    • JSON:json.load()json.dump()
    • TOML:tomllib.load()(Python 3.11+)
    • 项目应用:task_thread.py 中的 tomllib.load(f)
  3. 配置文件管理

    • 配置的读取和保存
    • 默认配置的处理
    • 项目应用:SRACore/config.toml

实践项目

  • 实现配置文件的读写系统
  • 支持多种格式的配置文件

第五阶段:多线程编程(2-3 周)

学习目标:实现并发任务执行

核心内容

  1. 线程基础

    • threading 模块
    • Thread 类的创建和启动
    • 线程的生命周期
    • 项目应用:后台任务执行
  2. 线程同步

    • Lock 互斥锁
    • Event 事件
    • Condition 条件变量
    • Semaphore 信号量
    • 项目应用:任务状态管理
  3. 线程安全

    • 共享资源的保护
    • 竞态条件
    • 死锁的避免
    • 项目应用:TaskManagerrunning_flag
  4. 线程通信

    • 队列 Queue
    • 管道 Pipe
    • 项目应用:任务间的消息传递

实践项目

  • 实现多任务并发执行
  • 实现任务的暂停和恢复

第六阶段:日志和调试(1 周)

学习目标:实现专业的日志系统

核心内容

  1. 标准日志模块

    • logging 模块基础
    • 日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
    • 日志格式化
  2. 第三方日志库

    • loguru 库(项目使用)
    • 装饰器和上下文管理
    • 日志文件轮转
    • 项目应用:SRACore/util/logger.py
  3. 调试技巧

    • pdb 调试器
    • 打印调试
    • 日志级别的合理使用

实践项目

  • 集成 loguru 到项目
  • 实现结构化日志记录

第七阶段:系统交互和自动化(2-3 周)

学习目标:实现游戏自动化的核心功能

核心内容

  1. 进程管理

    • subprocess 模块
    • 进程的启动、通信、终止
    • 项目应用:启动游戏进程
  2. 系统信息获取

    • psutil 库(项目使用)
    • CPU、内存、进程信息
    • 项目应用:监控系统资源
  3. 键盘和鼠标控制

    • pyautogui 库(项目使用)
    • 鼠标移动和点击
    • 键盘输入
    • 项目应用:游戏操作自动化
  4. 屏幕截图

    • pyscreeze 库(项目使用)
    • 截图和图像定位
    • 项目应用:游戏状态识别
  5. 窗口管理

    • pygetwindow 库(项目使用)
    • 获取窗口信息
    • 窗口激活和操作
    • 项目应用:游戏窗口控制

实践项目

  • 实现游戏启动自动化
  • 实现简单的图像识别和点击

第八阶段:图像处理和识别(2-3 周)

学习目标:实现游戏画面识别

核心内容

  1. OpenCV 基础

    • 图像读取和显示
    • 图像的基本操作(裁剪、缩放、旋转)
    • 项目应用:游戏画面处理
  2. 图像识别

    • 模板匹配
    • 特征检测
    • 颜色识别
    • 项目应用:识别游戏UI元素
  3. OCR 文字识别

    • rapidocr-onnxruntime 库(项目使用)
    • 文字检测和识别
    • 项目应用:识别游戏中的文字
  4. 图像处理库

    • PIL/Pillow 库(项目使用)
    • 图像格式转换
    • 项目应用:图像预处理

实践项目

  • 实现游戏UI识别
  • 实现文字识别功能

第九阶段:网络通信和加密(1-2 周)

学习目标:实现网络通信和数据安全

核心内容

  1. 邮件发送

    • smtplib 模块
    • email 模块
    • 项目应用:notify.py 中的邮件通知
  2. 加密解密

    • 对称加密(AES)
    • 非对称加密(RSA)
    • 哈希函数
    • 项目应用:密码加密存储
  3. HTTP 请求

    • requests
    • GET 和 POST 请求
    • 项目应用:版本检查和更新

实践项目

  • 实现邮件通知系统
  • 实现密码加密存储

第十阶段:任务调度和通知(1-2 周)

学习目标:实现定时任务和系统通知

核心内容

  1. 任务调度

    • schedule 库(项目使用)
    • 定时任务
    • 项目应用:定时执行游戏任务
  2. 系统通知

    • plyer 库(项目使用)
    • Windows 通知
    • 项目应用:任务完成通知
  3. 事件驱动

    • 事件循环
    • 回调函数
    • 项目应用:任务事件处理

实践项目

  • 实现定时任务系统
  • 实现多种通知方式

第十一阶段:国际化和本地化(1 周)

学习目标:支持多语言

核心内容

  1. i18n 实现

    • 字符串提取
    • 翻译文件管理
    • 项目应用:SRACore/i18n/ 模块
  2. 多语言支持

    • 语言切换
    • 区域设置
    • 项目应用:中英文支持

实践项目

  • 实现国际化框架
  • 添加新语言支持

第十二阶段:打包和发布(1 周)

学习目标:将 Python 代码打包为可执行文件

核心内容

  1. Nuitka 打包

    • nuitka 库(项目使用)
    • 编译 Python 为二进制
    • 项目应用:package.py 脚本
  2. 依赖管理

    • requirements.txt
    • 虚拟环境
    • 项目应用:项目依赖管理
  3. 版本管理

    • 版本号规范
    • 更新日志
    • 项目应用:version.json

实践项目

  • 打包 Python 项目为 EXE
  • 实现自动更新机制

项目实践:完整的自动化任务

综合应用所有知识

  1. 创建任务配置系统
  2. 实现多任务并发执行
  3. 添加日志和错误处理
  4. 实现邮件和系统通知
  5. 打包为可执行文件

🦀 Rust 学习路线

第一阶段:Rust 基础语法(2-3 周)

学习目标:理解 Rust 的核心概念和语法

核心内容

  1. 变量和绑定

    • 变量声明和赋值
    • 可变性(mut
    • 常量和静态变量
    • 项目应用:src-tauri/src/types.rs 中的类型定义
  2. 基本数据类型

    • 整数、浮点数、布尔值、字符
    • 字符串(String&str
    • 数组和向量
    • 元组和结构体
    • 项目应用:配置数据结构
  3. 所有权系统(Rust 的核心)

    • 所有权规则
    • 移动语义
    • 克隆和复制
    • 项目应用:进程管理中的资源所有权
  4. 借用和引用

    • 不可变引用 &T
    • 可变引用 &mut T
    • 借用规则
    • 项目应用:函数参数传递
  5. 模式匹配

    • match 表达式
    • if letwhile let
    • 解构
    • 项目应用:错误处理

实践项目

  • 实现简单的配置结构体
  • 练习所有权和借用

第二阶段:错误处理和类型系统(2 周)

学习目标:掌握 Rust 的错误处理和类型系统

核心内容

  1. Result 和 Option

    • Result<T, E> 类型
    • Option<T> 类型
    • ? 操作符
    • 项目应用:process.rs 中的错误处理
  2. 自定义错误类型

    • 实现 Error trait
    • 错误转换
    • 项目应用:自定义错误类型
  3. 泛型

    • 泛型函数
    • 泛型结构体
    • 泛型 trait
    • 项目应用:通用的配置管理
  4. Trait

    • Trait 定义和实现
    • Trait 对象
    • 项目应用:Emitter trait 的使用

实践项目

  • 实现自定义错误类型
  • 创建通用的结果处理函数

第三阶段:生命周期和内存管理(2 周)

学习目标:理解 Rust 的内存管理机制

核心内容

  1. 生命周期

    • 生命周期注解
    • 生命周期省略规则
    • 项目应用:函数参数和返回值
  2. 智能指针

    • Box<T> - 堆分配
    • Rc<T> - 引用计数
    • Arc<T> - 原子引用计数
    • Mutex<T> - 互斥锁
    • 项目应用:SRA_PROCESS: Mutex<Option<SraProcess>>
  3. 内存安全

    • 栈和堆
    • 内存泄漏的避免
    • 项目应用:进程资源管理

实践项目

  • 实现线程安全的全局状态
  • 使用 Arc<Mutex<T>> 管理共享资源

第四阶段:并发编程(2-3 周)

学习目标:实现并发和异步编程

核心内容

  1. 线程

    • std::thread 模块
    • 线程创建和管理
    • 线程间通信
    • 项目应用:后台进程管理
  2. 异步编程

    • async/await 语法
    • Future trait
    • 项目应用:tokio 异步运行时
  3. Tokio 运行时

    • 异步任务
    • 通道(mpscbroadcast
    • 定时器
    • 项目应用:Cargo.toml 中的 tokio 依赖
  4. 同步原语

    • Mutex 互斥锁
    • RwLock 读写锁
    • Semaphore 信号量
    • 项目应用:进程状态管理

实践项目

  • 实现异步进程管理
  • 实现线程间的消息传递

第五阶段:Tauri 框架基础(2-3 周)

学习目标:理解 Tauri 框架的核心概念

核心内容

  1. Tauri 应用结构

    • 应用初始化
    • 窗口管理
    • 项目应用:src-tauri/src/lib.rs 中的 run() 函数
  2. 命令系统

    • #[tauri::command]
    • 命令处理
    • 参数序列化
    • 项目应用:commands.rs 中的所有命令
  3. 事件系统

    • 事件发送
    • 事件监听
    • 项目应用:app_handle.emit("console-output", ...)
  4. 插件系统

    • 官方插件
    • 项目应用:tauri-plugin-openertauri-plugin-dialogtauri-plugin-fs
  5. 配置文件

    • tauri.conf.json
    • 应用配置
    • 项目应用:src-tauri/tauri.conf.json

实践项目

  • 创建简单的 Tauri 应用
  • 实现前后端通信

第六阶段:Tauri 命令和 IPC(2 周)

学习目标:实现前后端通信

核心内容

  1. 命令定义

    • 参数类型
    • 返回类型
    • 错误处理
    • 项目应用:commands.rs 中的命令定义
  2. 序列化和反序列化

    • serde
    • serde_json
    • 自定义序列化
    • 项目应用:配置数据的序列化
  3. 异步命令

    • 异步命令处理
    • 长时间运行的操作
    • 项目应用:进程启动和管理
  4. 状态管理

    • 应用状态
    • 状态共享
    • 项目应用:全局进程状态

实践项目

  • 实现配置管理命令
  • 实现进程控制命令

第七阶段:进程管理和系统交互(2-3 周)

学习目标:实现系统级操作

核心内容

  1. 进程管理

    • std::process::Command
    • 进程启动和通信
    • 标准输入输出
    • 项目应用:process.rs 中的进程管理
  2. 管道和通信

    • 标准输入(stdin)
    • 标准输出(stdout)
    • 标准错误(stderr)
    • 项目应用:与 Python 进程的通信
  3. 文件系统操作

    • 文件读写
    • 目录操作
    • 路径处理
    • 项目应用:配置文件管理
  4. Windows API

    • windows crate
    • 系统调用
    • 项目应用:Cargo.toml 中的 Windows 特定依赖

实践项目

  • 实现进程启动和监控
  • 实现进程间通信

第八阶段:HTTP 和网络编程(1-2 周)

学习目标:实现网络通信

核心内容

  1. HTTP 客户端

    • reqwest 库(项目使用)
    • GET 和 POST 请求
    • 异步请求
    • 项目应用:版本检查和更新
  2. JSON 处理

    • serde_json
    • 序列化和反序列化
    • 项目应用:配置和公告数据
  3. 错误处理

    • 网络错误
    • 超时处理
    • 项目应用:网络请求的容错

实践项目

  • 实现版本检查功能
  • 实现公告获取功能

第九阶段:日期时间和正则表达式(1 周)

学习目标:处理日期和文本

核心内容

  1. 日期时间

    • chrono 库(项目使用)
    • 时间戳
    • 时间格式化
    • 项目应用:日志时间戳
  2. 正则表达式

    • regex 库(项目使用)
    • 模式匹配
    • 文本提取
    • 项目应用:日志解析
  3. 字符串处理

    • 字符串操作
    • 编码转换
    • 项目应用:配置文件解析

实践项目

  • 实现日志时间戳
  • 实现文本解析功能

第十阶段:加密和编码(1-2 周)

学习目标:实现数据安全

核心内容

  1. Base64 编码

    • base64 库(项目使用)
    • 编码和解码
    • 项目应用:数据传输
  2. 加密算法

    • 对称加密
    • 非对称加密
    • 项目应用:密码加密
  3. 哈希函数

    • 数据完整性验证
    • 项目应用:文件校验

实践项目

  • 实现数据加密存储
  • 实现文件完整性验证

第十一阶段:文件压缩和打包(1 周)

学习目标:处理压缩文件

核心内容

  1. ZIP 文件处理

    • zip 库(项目使用)
    • 创建和提取 ZIP
    • 项目应用:资源打包
  2. 文件操作

    • 文件读写
    • 目录遍历
    • 项目应用:资源管理

实践项目

  • 实现资源打包功能
  • 实现资源提取功能

第十二阶段:日志和调试(1 周)

学习目标:实现日志系统

核心内容

  1. 日志库

    • 日志级别
    • 日志格式化
    • 项目应用:logger.rs 模块
  2. 调试技巧

    • println!
    • dbg!
    • 调试器
    • 项目应用:开发调试

实践项目

  • 实现结构化日志
  • 实现日志文件管理

第十三阶段:高级特性和优化(2-3 周)

学习目标:掌握 Rust 的高级特性

核心内容

  1. 宏系统

    • 声明宏
    • 过程宏
    • 项目应用:#[tauri::command]
  2. 不安全代码

    • unsafe
    • FFI(外部函数接口)
    • 项目应用:Windows API 调用
  3. 性能优化

    • 编译优化
    • 内存优化
    • 项目应用:发布构建
  4. 测试

    • 单元测试
    • 集成测试
    • 项目应用:代码质量保证

实践项目

  • 实现自定义宏
  • 优化性能关键代码

项目实践:完整的 Tauri 应用

综合应用所有知识

  1. 创建 Tauri 应用框架
  2. 实现前后端通信
  3. 实现进程管理
  4. 实现配置管理
  5. 实现日志系统
  6. 添加错误处理
  7. 优化性能

🖖 Vue 3 学习路线

第一阶段:Vue 3 基础概念(1-2 周)

学习目标:理解 Vue 3 的核心概念

核心内容

  1. Vue 3 简介

    • Vue 3 vs Vue 2 的区别
    • 组合式 API vs 选项式 API
    • 项目应用:项目使用组合式 API
  2. 模板语法

    • 插值表达式
    • 指令 v-ifv-forv-bindv-on
    • 项目应用:Main.vue 中的模板
  3. 响应式数据

    • ref() 函数
    • reactive() 函数
    • 响应式原理
    • 项目应用:组件状态管理
  4. 计算属性和侦听器

    • computed() 函数
    • watch() 函数
    • 项目应用:动态计算和监听
  5. 事件处理

    • 事件绑定 @click
    • 事件修饰符
    • 项目应用:按钮点击处理

实践项目

  • 创建简单的计数器应用
  • 实现表单输入和验证

第二阶段:组件基础(2 周)

学习目标:掌握 Vue 组件的创建和使用

核心内容

  1. 组件定义

    • 单文件组件(.vue 文件)
    • 组件结构(<template><script><style>
    • 项目应用:Main.vueVersionUpdateWindow.vue
  2. Props 和 Emits

    • Props 定义和验证
    • 事件发送(Emits)
    • 项目应用:父子组件通信
  3. 插槽(Slots)

    • 默认插槽
    • 具名插槽
    • 作用域插槽
    • 项目应用:可复用组件设计
  4. 组件通信

    • 父传子(Props)
    • 子传父(Emits)
    • 兄弟组件通信
    • 项目应用:组件间数据流
  5. 组件生命周期

    • onMounted
    • onUpdated
    • onUnmounted
    • 项目应用:组件初始化和清理

实践项目

  • 创建可复用的按钮组件
  • 实现父子组件通信
  • 创建带插槽的容器组件

第三阶段:组合式 API(2-3 周)

学习目标:掌握 Vue 3 的组合式 API

核心内容

  1. setup 函数

    • setup() 函数的作用
    • 返回值
    • 项目应用:组件逻辑组织
  2. 响应式 API

    • ref()reactive()
    • toRef()toRefs()
    • isRef()unref()
    • 项目应用:状态管理
  3. 计算属性

    • computed() 的使用
    • 可写计算属性
    • 项目应用:派生状态
  4. 侦听器

    • watch() 函数
    • watchEffect() 函数
    • 项目应用:副作用处理
  5. 生命周期钩子

    • 所有生命周期函数
    • 钩子的执行顺序
    • 项目应用:组件生命周期管理
  6. 依赖注入

    • provide()inject()
    • 项目应用:跨层级组件通信

实践项目

  • 重构组件使用组合式 API
  • 实现自定义 Hooks
  • 实现跨层级数据共享

第四阶段:TypeScript 集成(2 周)

学习目标:在 Vue 中使用 TypeScript

核心内容

  1. TypeScript 基础

    • 类型注解
    • 接口和类型别名
    • 泛型
    • 项目应用:src/locales/zh-CN.ts
  2. Vue 中的 TypeScript

    • 组件类型定义
    • Props 类型
    • Emits 类型
    • 项目应用:类型安全的组件
  3. 类型推断

    • 自动类型推断
    • 显式类型注解
    • 项目应用:代码可读性
  4. 常见类型模式

    • 联合类型
    • 交叉类型
    • 条件类型
    • 项目应用:复杂类型定义

实践项目

  • 为组件添加类型定义
  • 创建类型安全的 API 接口
  • 实现类型安全的状态管理

第五阶段:Vue Router 路由(2 周)

学习目标:实现应用路由

核心内容

  1. 路由基础

    • 路由定义
    • 路由匹配
    • 项目应用:src/router/ 模块
  2. 导航

    • 声明式导航(<router-link>
    • 编程式导航(router.push()
    • 项目应用:Main.vue 中的导航
  3. 路由参数

    • 动态路由
    • 查询参数
    • 项目应用:传递数据
  4. 导航守卫

    • 全局守卫
    • 路由守卫
    • 组件守卫
    • 项目应用:权限控制
  5. 懒加载

    • 路由级别的代码分割
    • 项目应用:性能优化
  6. 嵌套路由

    • 子路由
    • 项目应用:复杂的页面结构

实践项目

  • 创建多页面应用
  • 实现路由参数传递
  • 实现导航守卫

第六阶段:国际化(i18n)(1-2 周)

学习目标:实现多语言支持

核心内容

  1. i18n 库

    • vue-i18n
    • 安装和配置
    • 项目应用:项目的多语言支持
  2. 翻译文件

    • 翻译文件结构
    • 语言包管理
    • 项目应用:src/locales/ 目录
  3. 翻译函数

    • $t() 函数
    • 参数化翻译
    • 项目应用:动态翻译
  4. 语言切换

    • 语言切换逻辑
    • 持久化语言选择
    • 项目应用:用户偏好设置

实践项目

  • 实现多语言支持
  • 创建语言切换功能
  • 添加新语言

第七阶段:Tauri 集成(2-3 周)

学习目标:在 Vue 中使用 Tauri API

核心内容

  1. Tauri API 基础

    • @tauri-apps/api
    • 命令调用
    • 项目应用:调用 Rust 命令
  2. 命令调用

    • invoke() 函数
    • 参数传递
    • 错误处理
    • 项目应用:Main.vue 中的命令调用
  3. 事件系统

    • 事件监听
    • 事件发送
    • 项目应用:实时通信
  4. 文件系统

    • 文件读写
    • 目录操作
    • 项目应用:配置文件管理
  5. 对话框

    • 文件选择
    • 消息框
    • 项目应用:用户交互
  6. 窗口管理

    • 窗口操作
    • 项目应用:应用窗口控制

实践项目

  • 实现前后端通信
  • 实现文件选择功能
  • 实现实时日志显示

第八阶段:状态管理(1-2 周)

学习目标:实现应用级状态管理

核心内容

  1. 状态管理概念

    • 为什么需要状态管理
    • 状态管理的模式
    • 项目应用:应用全局状态
  2. Pinia(推荐)

    • Store 定义
    • State、Getters、Actions
    • 项目应用:如果需要可集成
  3. 简单的状态管理

    • 使用 provide/inject
    • 使用 reactive()
    • 项目应用:当前项目的状态管理
  4. 状态持久化

    • 本地存储
    • 项目应用:用户设置保存

实践项目

  • 实现应用全局状态
  • 实现状态持久化
  • 实现状态同步

第九阶段:UI 组件和样式(2 周)

学习目标:创建美观的用户界面

核心内容

  1. CSS 基础

    • CSS 选择器
    • 盒模型
    • Flexbox 和 Grid
    • 项目应用:样式设计
  2. Vue 中的样式

    • 内联样式
    • 类绑定
    • 作用域样式
    • 项目应用:<style scoped>
  3. UI 组件库

    • lucide-vue-next 图标库(项目使用)
    • 其他 UI 库
    • 项目应用:图标使用
  4. 响应式设计

    • 媒体查询
    • 移动优先
    • 项目应用:适配不同屏幕
  5. 动画和过渡

    • <Transition> 组件
    • CSS 动画
    • 项目应用:用户体验

实践项目

  • 创建响应式布局
  • 实现组件样式
  • 添加动画效果

第十阶段:高级组件(2 周)

学习目标:创建复杂的可复用组件

核心内容

  1. 拖拽功能

    • vuedraggable 库(项目使用)
    • 拖拽事件
    • 项目应用:任务排序
  2. Markdown 渲染

    • vue3-markdown-it 库(项目使用)
    • 渲染 Markdown
    • 项目应用:公告显示
  3. 虚拟滚动

    • 大列表优化
    • 项目应用:性能优化
  4. 表单处理

    • 表单验证
    • 表单提交
    • 项目应用:配置表单
  5. 模态框和通知

    • 模态框组件
    • 通知系统
    • 项目应用:NotificationSystem 组件

实践项目

  • 实现拖拽排序功能
  • 实现 Markdown 渲染
  • 创建通知系统

第十一阶段:性能优化(1-2 周)

学习目标:优化应用性能

核心内容

  1. 代码分割

    • 路由级别分割
    • 组件级别分割
    • 项目应用:加快初始加载
  2. 懒加载

    • 图片懒加载
    • 组件懒加载
    • 项目应用:性能提升
  3. 缓存策略

    • 组件缓存(<KeepAlive>
    • 项目应用:Main.vue 中的 <keep-alive>
  4. 性能监测

    • 性能指标
    • 调试工具
    • 项目应用:性能分析
  5. 构建优化

    • Vite 配置
    • 项目应用:vite.config.ts

实践项目

  • 实现路由懒加载
  • 优化组件性能
  • 分析和改进性能指标

第十二阶段:测试(1-2 周)

学习目标:编写测试代码

核心内容

  1. 单元测试

    • Vitest 框架
    • 测试用例编写
    • 项目应用:组件测试
  2. 组件测试

    • @vue/test-utils
    • 组件挂载和交互
    • 项目应用:测试 Vue 组件
  3. E2E 测试

    • PlaywrightCypress
    • 端到端测试
    • 项目应用:集成测试
  4. 测试覆盖率

    • 覆盖率报告
    • 项目应用:代码质量

实践项目

  • 编写组件单元测试
  • 编写 E2E 测试
  • 提高测试覆盖率

第十三阶段:项目实战(2-3 周)

学习目标:综合应用所有知识

核心内容

  1. 项目架构

    • 目录结构
    • 模块划分
    • 项目应用:src/ 目录结构
  2. 最佳实践

    • 代码规范
    • 命名约定
    • 项目应用:项目代码风格
  3. 开发工作流

    • 开发环境设置
    • 构建和部署
    • 项目应用:package.json 脚本
  4. 调试和问题排查

    • Vue DevTools
    • 浏览器调试
    • 项目应用:开发调试

实践项目

  1. 完整的页面开发

    • 创建新页面
    • 实现所有功能
    • 添加样式和动画
    • 编写测试
  2. 功能模块开发

    • 配置管理页面
    • 任务管理页面
    • 设置页面
  3. 性能优化

    • 分析性能瓶颈
    • 实施优化方案
    • 验证效果

🎯 学习建议和资源

学习顺序建议

推荐路径

  1. 第 1-2 周:Vue 3 基础 + 组件基础

    • 快速看到可视化结果,增强学习动力
    • 理解 Vue 的核心概念
  2. 第 3-4 周:组合式 API + TypeScript

    • 掌握现代 Vue 开发方式
    • 提高代码质量
  3. 第 5-6 周:Vue Router + 国际化

    • 实现完整的应用结构
    • 支持多语言
  4. 第 7-8 周:Tauri 集成 + 状态管理

    • 实现前后端通信
    • 管理应用状态
  5. 第 9-13 周:UI 优化、性能、测试、实战

    • 打磨应用细节
    • 提高代码质量

并行学习建议

如果时间充足,可以并行学习:

  • Vue 3 基础 + Python 基础(第 1-2 周)
  • Vue 3 进阶 + Python 中级(第 3-4 周)
  • Vue 3 + Tauri + Rust 基础(第 5-8 周)
  • 完整项目开发(第 9+ 周)

学习资源

官方文档

项目参考

  • 查看 src/views/Main.vue 学习组件结构
  • 查看 src/locales/ 学习国际化
  • 查看 src-tauri/src/commands.rs 学习 Tauri 命令
  • 查看 SRA-CE-cil/SRACore/ 学习 Python 项目结构

实践建议

  • 从修改现有组件开始
  • 逐步添加新功能
  • 参考项目代码学习最佳实践
  • 定期重构和优化代码

📊 学习时间估计

语言基础阶段中级阶段项目相关进阶阶段总计
Python2-3 周4-5 周4-5 周2-3 周12-16 周
Rust2-3 周4-5 周4-5 周2-3 周12-16 周
Vue 33-4 周4-5 周3-4 周2-3 周12-16 周

总体时间

  • 专注学习一门语言:3-4 个月
  • 学习两门语言:4-6 个月
  • 学习三门语言:6-9 个月
  • 完整项目开发:9-12 个月

🚀 快速开始建议

如果你想快速上手项目

第 1 周

  • 学习 Vue 3 基础和组件
  • 修改现有 Vue 组件
  • 理解项目结构

第 2-3 周

  • 学习 Tauri 集成
  • 实现简单的前后端通信
  • 添加新功能

第 4-6 周

  • 学习 Python 自动化
  • 理解游戏自动化逻辑
  • 优化现有功能

第 7+ 周

  • 学习 Rust 进阶
  • 优化系统级操作
  • 完整项目开发

如果你想深入学习语言

选择一门语言深入学习

  1. 完成该语言的所有阶段
  2. 在项目中应用所学知识
  3. 参与项目开发和优化
  4. 然后学习其他语言
最近更新