SuperAPI AI 工具集

create-store

智能体与模型

查看项目

更新于 10-16 08:39

技能介绍

用途:按 ryOS 仓库约定创建或修改 Zustand store,状态文件位于 src/stores/,命名为 use<Name>Store.ts,多数通过 persist 中间件持久化到 localStorage。

主要能力与用法:

  1. 基本结构:用 create<State>()(persist(...)) 定义,State 接口同时包含数据与 actions,actions 使用 set/get,ID 用 crypto.randomUUID()。存储键统一为 name: "ryos:<feature>"。
  2. 持久化配置:partialize 只持久化必要字段,省略瞬态 UI/派生状态;当持久化结构可能变化时,必须加 version 与 migrate 处理旧数据。
  3. 存储适配器:大或高频写入的 slice 使用 src/utils/debouncedPersistStorage.ts 的 createDebouncedPersistStorage(),按静默窗口批量写入并在 pagehide/tab-hidden 时刷新;直接读取原始 localStorage 的流程需先调用 flushDebouncedPersistWrites()。超出 localStorage 配额(约 5–10MB)的 slice 使用 src/utils/indexedDBPersistStorage.ts 的 createIndexedDBPersistStorage(),异步 hydrate,需用 persist.hasHydrated()/onFinishHydration 控制默认值填充,手动备份需 await settlePersistWrites()。大型实体集合或二进制负载可用 createSplitIndexedDBPersistStorage,并维护 STORES、DB_VERSION、MANUAL_BACKUP_INDEXEDDB_STORES 与测试。
  4. 云同步:参与同步的集合删除时须调用 useCloudSyncStore.getState().markDeletedKeys(bucket, ids) 记录墓碑,bucket 使用已有 CloudSyncDeletionBucket 值。
  5. 读取:React 中用选择器订阅;非 React 代码用 useXStore.getState()。

适用场景:为 ryOS 新增或调整状态存储、迁移旧持久化结构、处理大容量或高频写入、接入云同步删除。

限制:资料未提供具体安装命令、收费、平台与效果信息;测试可参考 write-tests 技能及 tests/unit/<domain>/ 下的示例。