让 AI 编写 Robius 状态管理与持久化代码
解决 Makepad 开发痛点:通过规范定义 AppState 结构、持久化逻辑及 Scope 传递方式,让 AI 自动输出可维护的 Rust 代码,处理主题切换、窗口几何保存及跨会话状态恢复。
为什么需要这个技能
开发基于 Robrix 或 Moly 的 Makepad 应用时,开发者常面临如何正确设计跨会话状态、处理 UI 布局持久化以及安全传递状态数据的难题。
直接手写复杂的 AppState 序列化逻辑容易出错,且缺乏对线程安全、版本兼容性的考量。本技能引导 AI 依据 _base/ 目录中的生产模式(如全局注册表、状态机、本地持久化),自动生成包含 serde 标记、错误回退机制及线程本地缓存的健壮代码,显著降低状态管理难度。
适用场景
- 初始化或重构 Makepad 项目的状态结构时。
- 实现主题切换(Theme Switching)或保存用户界面布局时。
- 需要在 Widget 树中安全传递状态而不污染引用时。
- 处理用户登录状态、窗口几何及多用户数据隔离时。
核心工作流
- 定义核心状态结构:使用
#[derive(Serialize, Deserialize)]定义AppState,利用#[serde(skip)]排除临时登录状态等非持久化字段。 - 配置持久化路径:区分用户特定目录(
persistent_state_dir)与全局应用目录,分别存储应用逻辑状态和窗口几何信息。 - 实现加载与保存逻辑:编写
load_app_state函数,处理文件不存在或格式不兼容时的默认回退,并自动备份旧文件。 - 集成 Scope 传递:在
AppMain::handle_event中使用Scope::with_data将状态注入 UI 树,避免手动传递引用导致的数据竞争。 - 处理线程安全:对于纯 UI 缓存,使用
thread_local!配合Cx参数,确保数据仅在 UI 线程访问。
下载和安装
下载 robius-state-management 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的使用说明文档。
你可能还需要
暂无推荐